Red de conocimiento del abogados - Preguntas y respuestas jurídicas - ¿Cuál es la diferencia entre impala y colmena?

¿Cuál es la diferencia entre impala y colmena?

Las principales diferencias entre impala y hive son las siguientes:

1. Diferentes planes de ejecución:

Impala: expresa el plan de ejecución como un árbol de ejecución completo. El árbol de planes puede distribuir de forma más natural el plan de ejecución a cada Impala para ejecutar la consulta, en lugar de combinarlo en un modo de reducción de mapa de canalización como Hive, lo que garantiza una mejor concurrencia en Impala y evita una clasificación intermedia innecesaria con orden aleatorio.

El plan de ejecución de Hive se divide en el modelo map-shuffle-reduce-map-shuffle-reduce.... Si una consulta se compila en varias rondas de MapReduce, se escribirán más resultados intermedios. Debido a las características del propio marco de ejecución de MapReduce, demasiados procesos intermedios aumentarán el tiempo de ejecución de toda la consulta.

2. El flujo de datos es diferente:

Impala: utilizando el método pull, los nodos posteriores solicitan activamente datos del nodo anterior a través de getNext. al cliente en forma de transmisión, y siempre que se procese un dato, se puede mostrar inmediatamente sin esperar a que se complete todo el procesamiento, lo cual es más adecuado para el uso de consultas interactivas SQL.

Hive: utilizando el método push, cada nodo informático envía activamente los datos a los nodos posteriores después de completar el cálculo.

3. La memoria utilizada es diferente:

Impala: cuando la memoria no puede almacenar datos, devolverá directamente un error en lugar de usar la memoria externa. Esto hace que Impala esté actualmente procesando la consulta. estar sujeto a ciertas restricciones y es mejor usarlo junto con Hive. Impala utiliza la red para transmitir datos entre múltiples etapas y no hay ninguna operación de escritura en disco durante el proceso de ejecución (excepto inserción).

Hive: si la memoria no puede almacenar todos los datos durante la ejecución, se utilizará memoria externa para garantizar que la consulta se pueda ejecutar de forma secuencial. Al final de cada ronda de MapReduce, los resultados intermedios también se escribirán en HDFS. Además, debido a las características de la arquitectura de ejecución de MapReduce, el proceso de reproducción aleatoria también se escribirá en el disco local.

4. La programación es diferente:

Impala: la programación se realiza por sí sola. Actualmente solo existe un programador, programación simple, que intentará satisfacer la localidad de los datos y. el proceso de escaneo de los datos hará todo lo posible cerca de la máquina física donde residen los datos.

Hive: La programación de tareas depende de la estrategia de programación de Hadoop.