Impala y Hive no tan parecidos

Dos de los proyectos más usados para realizar consultas sobre el ecosistema Hadoop son Impala y Hive. Pero aunque a simple vista pueden parecer muy similares no lo son tanto.

Cloudera Impala es un motor distribuido de consultas sobre HDFS o HBase

  • Su arqutiectura es MPP (Massively Parallel Processing)
  • No usa el Map/Reduce de Hadoop sino que utiliza procesos que se ejecutan en los nodos y que consultan directamente sobre HDFS o HBase
  • Las consultas con Impala tienen una latencia menor que con Hive
  • Tiene un mayor consumo de memoria y de CPU que Hive

ArquitecturaImpala

Hive es un sistema de data warehouse sobre Hadoop

  • Su arquitectura se basa en el Map/Reduce de Hadoop
  • Es tolerante a fallos
  • Consultas más lentas que Impala pero más robustas

HiveArquitectura

Los ámbitos idóneos de aplicación de cada uno serían los siguientes:

Cloudera Impala aplicaría mejor en consultas más ligeras donde prime la velocidad sobre la fiabilidad, cualquier fallo en algún nodo o proceso obligaría a relanzar la consulta.

Hive es mejor para trabajos pesados de tipo ETL (Extract, Transform and Load) donde no nos interesa tanto la velocidad como la robustez de la ejecución, ya que la alta tolerancia a fallos que presenta evita la necesidad de relanzamientos al fallar algún nodo.