sql >> Base de Datos >  >> NoSQL >> HBase

Cloudera Impala:consultas en tiempo real en Apache Hadoop, de verdad

Después de un largo período de intenso esfuerzo de ingeniería y comentarios de los usuarios, nos complace y enorgullece anunciar el proyecto Cloudera Impala. Esta tecnología es revolucionaria para los usuarios de Hadoop y no nos tomamos esa afirmación a la ligera.

Cuando Google publicó su artículo sobre Dremel en 2010, nos inspiró tanto como el resto de la comunidad la visión técnica de llevar la capacidad de consulta ad hoc en tiempo real a Apache Hadoop, complementando el procesamiento por lotes tradicional de MapReduce. Hoy, estamos anunciando un código base completamente funcional y de código abierto que cumple con esa visión, y creemos que un poco más, que llamamos Cloudera Impala. Un binario de Impala ahora está disponible en forma de beta pública, pero si prefiere probar Impala a través de una VM prefabricada, también tenemos una para usted. También puede revisar el código fuente y el arnés de prueba en Github ahora mismo.

Impala sube el listón del rendimiento de las consultas al tiempo que conserva una experiencia familiar para el usuario. Con Impala, puede consultar datos, ya sea que estén almacenados en HDFS o Apache HBase, incluidas las funciones SELECT, JOIN y agregadas, en tiempo real. Además, utiliza los mismos metadatos, sintaxis SQL (Hive SQL), controlador ODBC e interfaz de usuario (Hue Beeswax) que Apache Hive, lo que proporciona una plataforma familiar y unificada para consultas en tiempo real o por lotes. (Por esa razón, los usuarios de Hive pueden utilizar Impala con poca sobrecarga de configuración). La primera versión beta incluye soporte para archivos de texto y SequenceFiles; SequenceFiles se puede comprimir como Snappy, GZIP y BZIP (se recomienda Snappy para obtener el máximo rendimiento). La compatibilidad con formatos adicionales, incluidos Avro, RCFile, archivos de texto LZO y el formato de columna Parquet, está planificada para la caída de la producción.

Para evitar la latencia, Impala elude MapReduce para acceder directamente a los datos a través de un motor de consulta distribuido especializado que es muy similar a los que se encuentran en los RDBMS paralelos comerciales. El resultado es un rendimiento mucho más rápido que Hive, según el tipo de consulta y la configuración. (Consulte las preguntas frecuentes a continuación para obtener más detalles). Tenga en cuenta que esta mejora en el rendimiento ha sido confirmada por varias grandes empresas que han probado Impala en cargas de trabajo del mundo real durante varios meses.

A continuación se muestra una vista arquitectónica de alto nivel:

Hay muchas ventajas de este enfoque sobre enfoques alternativos para consultar datos de Hadoop, que incluyen::

  • Gracias al procesamiento local en los nodos de datos, se evitan los cuellos de botella en la red.
  • Se puede utilizar un almacén de metadatos único, abierto y unificado.
  • La costosa conversión de formato de datos es innecesaria y, por lo tanto, no se incurre en gastos generales.
  • Todos los datos se pueden consultar inmediatamente, sin demoras para ETL.
  • Todo el hardware se utiliza para las consultas de Impala, así como para MapReduce.
  • Solo se necesita un único grupo de máquinas para escalar.

Le recomendamos que lea la documentación para obtener más detalles técnicos.

Finalmente, nos gustaría responder algunas preguntas que anticipamos serán populares:

¿Impala es de código abierto?
Sí, Impala es 100% de código abierto (Licencia Apache). Puedes revisar el código por ti mismo en Github hoy.

¿En qué se diferencia Impala de Dremel?
La primera y principal diferencia es que Impala es de código abierto y está disponible para que todos lo usen, mientras que Dremel es propiedad de Google.

Técnicamente, Dremel logra tiempos de respuesta interactivos en conjuntos de datos muy grandes mediante el uso de dos técnicas:

  • Un novedoso formato de almacenamiento en columnas para datos relacionales anidados/datos con estructuras anidadas
  • Algoritmos de agregación escalables distribuidos, que permiten calcular los resultados de una consulta en miles de máquinas en paralelo.

Este último está tomado de técnicas desarrolladas para DBMS paralelos, que también inspiraron la creación de Impala. A diferencia de Dremel, como se describe en el documento de 2010, que solo podía manejar consultas de una sola tabla, Impala ya es compatible con el conjunto completo de operadores de combinación que son uno de los factores que hacen que SQL sea tan popular.

Para obtener todos los beneficios de rendimiento demostrados por Dremel, Hadoop pronto tendrá un formato de almacenamiento binario en columnas eficiente llamado Parquet. Pero a diferencia de Dremel, Impala admite una variedad de formatos de archivo populares. Esto permite a los usuarios ejecutar Impala en sus datos existentes sin tener que "cargarlos" o transformarlos. También permite a los usuarios decidir si desean optimizar la flexibilidad o simplemente el rendimiento puro.

Para resumir, Impala más Parquet logrará el rendimiento de consulta descrito en el documento de Dremel, pero superará lo que se describe allí en funcionalidad SQL.

¿Cuán más rápidas son las consultas de Impala que las de Hive?
La cantidad precisa de mejora del rendimiento depende en gran medida de una serie de factores:

  • Configuración de hardware:Impala generalmente puede aprovechar al máximo los recursos de hardware y, específicamente, genera menos carga de CPU que Hive, lo que a menudo se traduce en un mayor ancho de banda de E/S agregado observado que con Hive. Impala, por supuesto, no puede ir más rápido de lo que permite el hardware, por lo que cualquier cuello de botella de hardware limitará la aceleración observada. Para consultas vinculadas puramente de E/S, normalmente vemos ganancias de rendimiento en el rango de 3-4x.
  • Complejidad de la consulta:las consultas que requieren varias fases de MapReduce en Hive o requieren uniones de lado reducido experimentarán una mayor aceleración que, por ejemplo, las consultas de agregación simples de una sola tabla. Para consultas con al menos una combinación, parece que hemos obtenido ganancias de rendimiento de 7-45X.
  • Disponibilidad de la memoria principal como caché para los datos de la tabla:si los datos a los que se accede a través de la consulta salen del caché, la aceleración será más drástica gracias a la eficiencia superior de Impala. En esos escenarios, hemos visto aceleraciones de 20x-90x sobre Hive incluso en consultas de agregación simples.

¿Es Impala un reemplazo para MapReduce o Hive, o para la infraestructura de almacenamiento de datos tradicional, para el caso?
No. Seguirá habiendo muchos casos de uso viables para MapReduce y Hive (por ejemplo, para cargas de trabajo de transformación de datos de ejecución prolongada), así como marcos de almacenamiento de datos tradicionales (por ejemplo, para análisis complejos en conjuntos de datos estructurados y limitados). Impala es un complemento de esos enfoques y admite casos de uso en los que los usuarios necesitan interactuar con conjuntos de datos muy grandes, en todos los silos de datos, para obtener conjuntos de resultados enfocados rápidamente.

¿La versión beta de Impala tiene alguna limitación técnica?
Como se mencionó anteriormente, los formatos de archivo admitidos en la primera versión beta incluyen archivos de texto y SequenceFiles, con muchos otros formatos admitidos en la próxima versión de producción. Además, actualmente todas las uniones se realizan en un espacio de memoria no mayor que el del nodo más pequeño del clúster; en producción, las uniones se realizarán en la memoria agregada. Por último, no hay UDF posibles en este momento.

¿Cuáles son los requisitos técnicos para la versión beta de Impala?
Necesitará tener CDH4.1 instalado en RHEL/CentOS 6.2. Recomendamos enfáticamente el uso de Cloudera Manager (edición gratuita o empresarial) para implementar y administrar Impala porque se encarga de la implementación distribuida y los detalles de monitoreo automáticamente.

¿Cuál es la política de soporte para la versión beta de Impala?
Si ya es cliente de Cloudera y tiene un error, puede generar un ticket de atención al cliente e intentaremos resolverlo de la mejor manera posible. Si no es cliente de Cloudera, puede usar nuestra instancia pública de JIRA o la lista de correo de usuarios de impala, que será supervisada por los empleados de Cloudera.

¿Cuándo estará Impala disponible para su uso en producción?
Se planea una caída de la producción para el primer trimestre de 2013. Los clientes pueden obtener soporte comercial en forma de una suscripción Cloudera Enterprise RTQ en ese momento.

Esperamos que aproveche la oportunidad para revisar el código fuente de Impala, explorar la versión beta, descargar e instalar la máquina virtual o cualquier combinación de las anteriores. Se agradecen sus comentarios en todos los casos; necesitamos su ayuda para hacer que Impala sea aún mejor.

Le traeremos más actualizaciones sobre Impala a medida que nos acerquemos a la disponibilidad de producción. (Actualización:Lea acerca de Impala 1.0.)

Recursos de Impala:
– Código fuente de Impala
– Descargas de Impala (versión beta y VM)
– Documentación de Impala
– JIRA público
– Lista de correo de Impala
– Impala gratuito entrenamiento (Transmisión en pantalla)

(Agregado el 30/10/2012) Artículos de terceros sobre Impala:
– GigaOm: Consulta en tiempo real para Hadoop democratiza el acceso a análisis de big data (22 de octubre de 2012)
– Wired: Man Busts Out of Google, Rebuilds Top-Secret Query Machine (24 de octubre de 2012)
– InformationWeek: Cloudera presenta la consulta de Hadoop en tiempo real (24 de octubre de 2012)
– GigaOm:Cloudera convierte a SQL en un ciudadano de primera clase en Hadoop (24 de octubre de 2012)
– ZDNet:Impala de Cloudera lleva Hadoop a SQL y BI (25 de octubre de 2012)
– Wired:perfil de Marcel Kornacker (29 de octubre de 2012)
– Dr. Dobbs: Cloudera Impala:procesamiento de petabytes a la velocidad de Pensamiento (29 de octubre de 2012)

Marcel Kornacker es el arquitecto de Impala. Antes de unirse a Cloudera, fue el desarrollador principal del motor de consultas del proyecto F1 de Google.

Justin Erickson es el gerente de producto de Impala.