La relación entre la arquitectura y sus similitudes y diferencias con la colmena Apache impala de

A, impala relaciones y Colmena

impala se basa en el análisis de gran colmena motor de consulta de datos, el uso directo hervidero de metadatos meta-base de datos, es decir, los metadatos impala almacena en meta almacén hervidero de ellos, y la gran mayoría de impala sintaxis SQL colmena compatibles. Por lo que necesita para instalar impala, se debe instalar, colmena para garantizar una instalación correcta, y la necesidad de empezar hervidero de servicio de meta almacén.

Colmena de metadatos comprende meta base de datos de información, mesa, etc. creados con la colmena. Los metadatos se almacenan en una base de datos relacional, como Derby, MySQL similares.

las conexiones de clientes de servicios MetaStore, meta almacén ir a la base de datos MySQL conectado para acceder al metadatos. Con el servicio de meta almacén, puede tener varias conexiones simultáneas de clientes, y estos clientes no necesitan saber el nombre de usuario de base de datos MySQL y la contraseña, sólo es necesario conectar el servicio de meta almacén.

nohup hive --service metastore >> ~/metastore.log 2>&1 &

Colmena adecuado para consulta por lotes de largo y análisis, y el Impala es apto para tiempo real las consultas SQL interactivo. Colmena puede primero usar el proceso de conversión de datos, después de análisis de datos rápido uso Impala en los resultados del conjunto de datos de tratamiento de la colmena.

Dos, impala y Colmena similitudes y diferencias

Colmena impala y herramientas de consulta de datos se construyen en la parte superior de Hadoop variar para adaptarse a la atención, pero el cliente utiliza el punto de vista del impala colmena tiene muchos en común, los metadatos de la tabla de datos, ODBC / JDBC conductor, sintaxis SQL, formato de archivo flexibles, grupos de recursos de almacenamiento.

Pero el Impala con la mayor diferencia es la optimización de la colmena: no utilice MapReduce computación paralela , aunque MapReduce es una muy buena plataforma de computación en paralelo, pero es más modelo orientado a lotes, en lugar de para la ejecución de SQL interactivo. En comparación con MapReduce, impala pone en una consulta completa del árbol de plan de ejecución , en lugar de una serie de tareas de MapReduce, después de la aplicación del plan de distribución, el uso del impala de adquisición de datos tirón métodos consiguen resultados, los resultados de la recopilación de datos mediante el paso de la composición de streaming árbol de ejecución , la etapa de reducir los resultados intermedios escritos en el disco, y los datos a continuación leídos desde la sobrecarga de disco. impala manera a evitar el uso de los servicios que necesita para empezar cada ejecución de la consulta de arriba, en comparación colmena que no es la hora de inicio de MapReduce.

1, impala técnicas de optimización utilizados

Ejecutar el código generado usando LLVM para generar código específico para una consulta en particular, reducir la sobrecarga de llamadas a funciones durante el uso de manera Inline para acelerar la eficiencia de la ejecución. (++ características C)

pleno uso de la instrucción del hardware disponible (SSE4.2).

Mejor programación IO, la ubicación del disco en el que el bloque de datos del impala saber más capaces de explotar las ventajas de múltiples discos, mientras que impala es compatible con lectura directa del bloque de datos y el código nativo de la suma de comprobación de calcular.

El mejor rendimiento se puede obtener mediante la selección de un formato de almacenamiento de datos adecuado (Impala soporta múltiples formatos de almacenamiento).

el uso máximo de la memoria, los resultados intermedios no escriben en el disco, forma la entrega oportuna para transmitir por la red.

2, el plan de implementación

Colmena : depende de la aplicación del marco de MapReduce, el plan de ejecución se divide en mapa-> shuffle-> reduce-> mapa->modelo. Si una consulta se compila en varias rondas de MapReduce, entonces no habrá más que escribir los resultados intermedios. Debido a las características del propio marco MapReduce realiza, proceso intermedio excesiva aumenta el tiempo total de ejecución de la consulta.

Impala : El Plan de Aplicación de la actuación de un árbol plan de implementación completa puede ser más natural para distribuir a diferentes plan de implementación Impalad para ejecutar la consulta, pero no me gusta la colmena, ya que combina en un tipo de tuberías mapa-> reducir el modelo, con el fin de garantizar impala mejor concurrencia y evitar la innecesaria especie intermedia y aleatoria.

3, el flujo de los datos

Colmena : usando manera de empuje, cada nodo de computación de forma proactiva empujado después de la finalización de los datos de cálculo al nodo subsiguiente.

Impala : modo de uso de tracción, posterior al nodo de datos a la parte delantera getNext nodo activo, de esta manera los datos pueden ser de nuevo por streaming al cliente, y siempre que hay un conjunto de datos a procesar, puede aparecer inmediatamente, sin esperar todo el proceso se completa, más en línea con las consultas SQL interactivas.

4, el uso de memoria

Colmena : durante la ejecución si la memoria no se ajusta a todos los datos, la memoria externa se utiliza para asegurar completa de consulta se puede realizar de forma secuencial. MapReduce final de cada ronda, los resultados intermedios también están escritos en HDFS, MapReduce también se debe a las características de la arquitectura de ejecución, proceso aleatorio habrá una las operaciones en disco local.

Impala : en la cara no encaja en la memoria de datos, versión 1.0.1 es la rentabilidad directos un error, sin el uso de memoria externa, las futuras versiones debe ser mejorado. Este proceso está utilizando actualmente el Impala de consultas estaban sujetos a ciertas restricciones, que es el más utilizado en conjunción con la colmena.

5, la programación

Colmena : programación de tareas depende de la política de planificación de Hadoop.

Impala : programación hecho por sí mismo, sólo hay un programador horario simple, se trata de satisfacer las necesidades locales, los datos de proceso de datos escaneados tan cerca de la máquina física donde los propios datos. El planificador es todavía relativamente simple, puede verse en SimpleScheduler :: GetBackend en, no hay ninguna consideración de carga, estado de la red IO programación. Pero el Impala tiene el análisis estadístico de los resultados del proceso de implementación, hay que posteriormente utilizaremos estas estadísticas para programarlo.

6, tolerante a fallos

Colmena : se basa en Hadoop tolerancia a fallos.

Impala : En el proceso de consulta, no lógica de fallos, si se produce un fallo durante la ejecución, se devuelve un error directamente (que está relacionada con el diseño de la impala, impala porque el posicionamiento en consultas en tiempo real, búsqueda tuvo éxito, y a continuación, comprobar sólo una vez, y luego comprobar una vez que el costo es muy bajo).

7, aplicabilidad

Colmena : tareas complejas consulta por lotes, las tareas de conversión de datos.

Impala : análisis de datos en tiempo real, ya que el problema no es compatible con el UDF, puede manejar dominio tiene ciertas limitaciones, en conjunción con la colmena, el resultado de los conjuntos de datos colmena en el análisis en tiempo real.

Tres, impala arquitectura

Impala principalmente por Impalad , Tienda Estado , Catalogd y CLI composición .

1, Impalad

Impalad : y correr DataNode en el mismo nodo, representado por el proceso de Impalad, que recibe consultas de los clientes ( que reciben la solicitud de consulta Impalad al Coordinador , Coordinador a través de la JNI llamada java explicar SQL front-end de consulta, generar un árbol de plan de consulta, y luego a través del programador el plan de ejecución distribuida con los datos correspondientes de otra Impalad ejecución ), leer y escribir datos, consultas ejecutadas en paralelo, y los resultados se transfieren a través de la parte posterior de la red a la corriente Coordinador, se devuelve al cliente por el Coordinador. Mientras tanto Impalad también mantenerse en contacto con la tienda de Estado, que se utiliza para determinar qué Impalad es saludable y puede aceptar el nuevo puesto de trabajo.

Iniciar los tres ThriftServer en Impalad: beeswax_server (cliente de conexión), hs2_server (préstamo Colmena metadatos), be_server (uso interno Impalad) y un servicio de ImpalaServer.

2, impala Tienda Estado

Tienda Estado Impala : el estado de salud y la información de seguimiento de localización cúmulo Impalad, representado por el proceso de statestored, se registra a las suscripciones de manejar y de mantener una conexión con el latido del corazón Impalad Impalad mediante la creación de múltiples hilos, cada uno Impalad se almacenan en caché en una tienda Estado la información, cuando la línea tienda Estado (Impalad encontró tienda Estado no está en línea, entrará en modo de recuperación, repetidamente registrado, cuando el almacén de estado vuelve a unirse al clúster, volverá automáticamente a los datos normales, de actualización en caché), porque Impalad tiene caché tienda Estado todavía puede ser trabajo, pero debido a que algunos Impalad falla, los datos almacenados en caché no pueden ser actualizados, lo que resulta en el plan de ejecución asignado al fracaso Impalad, lo que resulta consulta falla.

3, CLI

CLI: a disposición de la herramienta de línea de comando de consulta de usuario utilizado (Impala Shell consigue utilizando Python), mientras Impala también ofrece una interfaz de uso Hue, JDBC, ODBC.

4, Catalogd (directorio)

Catalogd : A medida que el acceso a la puerta de enlace de metadatos, información de metadatos adquirido de otra catálogo externo Colmena meta almacén, el catálogo en impala su estructura. Cuando la ejecución de comandos DDL impalad en nombre de su ejecución por catalogd, la actualización por difusión statestored.

Cuatro, impala procesamiento de consultas

 Impalad en Java C ++ front-end y back-end de procesamiento, para aceptar Impalad cliente que está conectado a analizar árbol del plan de ejecución de consultas SQL del usuario como el Coordinador de consulta, Coordinador llama a la parte delantera de Java a través de JNI.

Java árbol plan de ejecución producida en la punta del formato de datos vuelve al extremo trasero C ++ Thrift (Coordinador) ( plan de ejecución en una pluralidad de etapas, cada etapa se llama un PlanFragment cada PlanFragment puede, cuando es ejecutado por una pluralidad de Impalad ejemplo de ejecución en paralelo ( algunos PlanFragment solamente por un Impalad ejemplo de ejecución, tal operación de polimerización) , todo el plan de ejecución de un árbol de plan de ejecución ).

Coordinador de acuerdo con el plan de ejecución, la información de almacenamiento de datos ( Impala por libhdfs con HDFS Interact hdfsGetHosts por la obtención de la información de posición del nodo en el que el método de archivo de bloque de datos ), por un planificador (ahora sólo simple planificador, utilizando el algoritmo de round-robin) :: Coordinador Exec para generar el árbol del plan de ejecución asignado a la ejecución actuador Impalad servicios de fondo apropiado (consulta mediante la generación de código LLVM, compilación, ejecución), obtener resultados llamando al método GetNext ().

Si la instrucción de inserción, el resultado será la resultante de libhdfs HDFS escribir de nuevo cuando se agote todos los datos de entrada, la aplicación de la final, después de la cancelación del servicio de consulta.

Publicado 81 artículos originales · ganado elogios 21 · vistas 2238

Supongo que te gusta

Origin blog.csdn.net/qq_44065303/article/details/103456362
Recomendado
Clasificación