Si inicio un clúster ‘Hadoop’ desde cero (sin algoritmos heredados), ¿por qué debería considerar Hive si tengo el último Spark con SparkSQL?

Hive, SparkSQL e Impala tienen sus propias fortalezas y debilidades y todo depende del trabajo que intentes hacer. Las últimas versiones de Hive usan Tez como motor de ejecución (e incluso hay una variante de Hive en Spark) para ejecutar los trabajos, por lo que es mucho más rápido que Hive en Map-Reduce. Existen varios puntos de referencia en línea que comparan Hive-on-Tez con SparkSQL, Impala con Hive, pero muchos de ellos son puntos de referencia realizados por Cloudera (una compañía que creó Impala y es uno de los principales contribuyentes a Spark), y Hortonworks (contribuyente principal Colmena en Tez y Tez). Estos puntos de referencia son sesgados, limitados y producen sesgos.

Repentinamente (marzo de 2016) encontré un punto de referencia, por un tercero, comparando SparkSQL, Hive en Tez e Impala en un conjunto completo de consultas de referencia, SQL-on-Hadoop Benchmark: Un poco de historia de tortuga y liebre

Muestran que cada una de las tres soluciones diferentes tiene sus propias fortalezas para cargas de trabajo específicas.

También debe verificar el proyecto Apache Drill.

A2A: La primera regla es: “Use la herramienta adecuada para el trabajo”; Es posible que necesite los tres:

  • Hive es perfectamente adecuado para trabajos de transformación de datos / ETL de larga duración. Usar Hive-on-Spark te ayudará a cumplir con los SLA más estrictos que de otra manera. (Usuario ideal: ingeniero de datos).
  • Impala proporcionará el mejor rendimiento para consultas interactivas / estilo BI, especialmente bajo carga de múltiples usuarios. (Usuario ideal: analista de datos).
  • Spark SQL le permite usar construcciones SQL para el desarrollo de procedimientos, como lo haría para construir canalizaciones ML, etc. No está realmente diseñado para BI. (Usuario ideal: desarrollador o científico de datos).

De hecho, Hive usando Map reduce Framework es mucho más lento que Spark-SQL.

Siempre puedes optar por Hive con Spark.
Spark-SQL usa Hive Context para interactuar con consultas HQL.

Sin embargo, una limitación es que los RDD en Spark no admiten combinaciones.

Porque es como aprendemos c antes que java. 🙂

Si comienza con la colmena y luego cambia a sparksql, solo compare el rendimiento aceptado de ambos.

Prueba impala también es una mejor opción.