Pregunta

Estoy interesado en saber cómo funciona el recientemente lanzado (http://mirror.facebook.com/facebook/hive/hadoop-0.17/) Hive se compara con HBase en términos de rendimiento.La interfaz tipo SQL utilizada por Hive es mucho más preferible a la API HBase que hemos implementado.

¿Fue útil?

Solución

Es difícil encontrar mucho sobre Hive, pero encontré esto retazo en el sitio de Hive que se inclina fuertemente a favor de HBase (en negrita):

Hive se basa en Hadoop, que es un sistema de procesamiento por lotes.En consecuencia, este sistema no y No puedo prometer latencias bajas en las consultas..El paradigma aquí es estrictamente enviar trabajos y recibir una notificación cuando se completen, en lugar de consultas en tiempo real.Como resultado, no debe compararse con sistemas como Oracle, donde el análisis se realiza en una cantidad significativamente menor de datos, pero el análisis se realiza de manera mucho más iterativa y los tiempos de respuesta entre iteraciones son inferiores a unos pocos minutos. Para las consultas de Hive, los tiempos de respuesta incluso para los trabajos más pequeños pueden ser del orden de 5 a 10 minutos y para trabajos más grandes esto puede incluso durar horas.

Dado que HBase e HyperTable tienen que ver con el rendimiento (siguiendo el modelo de BigTable de Google), parece que ciertamente serían mucho más rápidos que Hive, a costa de la funcionalidad y una curva de aprendizaje más alta (por ejemplo, no tienen uniones ni el SQL). -como sintaxis).

Otros consejos

Desde una perspectiva, Hive consta de cinco componentes principales:una gramática y un analizador similares a SQL, un planificador de consultas, un motor de ejecución de consultas, un repositorio de metadatos y un diseño de almacenamiento en columnas.Su enfoque principal son las cargas de trabajo analíticas de estilo almacén de datos, por lo que no es necesaria la recuperación de valores por clave con baja latencia.

HBase tiene su propio repositorio de metadatos y diseño de almacenamiento en columnas.Es posible crear consultas HiveQL sobre tablas de HBase, lo que permite a HBase aprovechar la gramática y el analizador, el planificador de consultas y el motor de ejecución de consultas de Hive.Ver http://wiki.apache.org/hadoop/Hive/HBaseIntegration para más detalles.

Hive es una herramienta de análisis.Al igual que Pig, fue diseñado para el procesamiento por lotes ad hoc de cantidades potencialmente enormes de datos aprovechando la reducción de mapas.Piense en terrabytes.Imagínese intentar hacer eso en una base de datos relacional...

HBase es un almacén de valores clave basado en columnas basado en BigTable.No puede realizar consultas per se, aunque puede ejecutar trabajos de reducción de mapas a través de HBase.Su caso de uso principal es recuperar filas por clave o escanear rangos de filas.Una característica importante es poder tener localidad de datos al escanear entre rangos de claves de fila para una "familia" de columnas.

Hasta donde yo sé, Hive es más comparable a Pig.Hive es similar a SQL y Pig está basado en scripts.Hive parece ser más complicado con la optimización de consultas y los motores de ejecución, además de que requiere que el usuario final especifique los parámetros del esquema (partición, etc.).Ambos están destinados a procesar archivos de texto o archivos de secuencia.

HBase es para almacenar y recuperar datos de valores clave... puede escanear o filtrar esos pares de valores clave (filas).No puede realizar consultas en filas (clave, valor).

A partir de los lanzamientos más recientes de Hive, muchas cosas han cambiado y requieren una pequeña actualización. Hive y HBase ahora están integrados.Lo que esto significa es que Hive se puede utilizar como capa de consulta para un almacén de datos HBase.Ahora bien, si la gente busca interfaces HBase alternativas, Pig también ofrece una forma realmente agradable de cargar y almacenar datos de HBase.Además, parece Cloudera Impala puede ofrecer un rendimiento sustancial para consultas basadas en Hive además de HBase.Se afirma que las consultas son hasta 45 veces más rápidas que las configuraciones tradicionales de Hive.

Hive y HBase se utilizan para diferentes objetivo.

Colmena:

Ventajas:

  1. colmena apache es un infraestructura de almacenamiento de datos construido encima de Hadoop.
  2. Permite consultar datos almacenados en HDFS para análisis mediante HQL, un lenguaje tipo SQL, que se convertirá en series de Mapa Reducir Empleos
  3. solo corre procesos por lotes en Hadoop.
  4. es Compatible con JDBC, también se integra con herramientas basadas en SQL existentes
  5. Soportes de colmena particiones
  6. Es compatible consulta analítica de datos recopilados durante un periodo de tiempo

Contras:

  1. Actualmente no admite declaraciones de actualización.
  2. Debe contar con un esquema predefinido para asignar archivos y directorios en columnas.

HBase:

Ventajas:

  1. Un escalable, base de datos distribuida que admite almacenamiento de datos estructurados para tablas grandes
  2. Proporciona acceso aleatorio de lectura/escritura en tiempo real a tu Big Data.Las operaciones de HBase se ejecutan en tiempo real en su base de datos en lugar de trabajos de MapReduce
  3. es compatible particiones a tablas, y las tablas se dividen en familias de columnas
  4. Escala horizontalmente con una gran cantidad de datos mediante el uso de Hadoop
  5. Proporciona acceso basado en claves a los datos al almacenarlos o recuperarlos.Él admite agregar o actualizar filas.
  6. Soportes versionar de datos.

Contras:

  1. Las consultas de HBase están escritas en un lenguaje personalizado que debe aprenderse
  2. HBase no es totalmente compatible con ACID
  3. No se puede utilizar con patrones de acceso complicados (como uniones)
  4. Tampoco es un sustituto completo de HDFS al realizar MapReduce en lotes grandes.

Resumen:

Hive se puede utilizar para consultas analíticas, mientras que HBase para consultas en tiempo real.Los datos incluso se pueden leer y escribir desde Hive a HBase y viceversa.

Para comparar Hive con Hbase, me gustaría recordar la siguiente definición:

Una base de datos diseñada para manejar las transacciones no está diseñada para manejar el análisis.No está estructurado para realizar bien análisis.Un almacén de datos, por otro lado, está estructurado para facilitar el análisis y fácil.

Hive es una infraestructura de almacén de datos construida sobre Hadoop que es adecuada para trabajos ETL de larga duración.Hbase es una base de datos diseñada para manejar transacciones en tiempo real

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top