Solución:
MapReduce es solo un marco de computación. HBase no tiene nada que ver con eso. Dicho esto, puede colocar o recuperar datos de manera eficiente a / desde HBase escribiendo trabajos de MapReduce. Alternativamente, puede escribir programas secuenciales utilizando otras API de HBase, como Java, para colocar o recuperar los datos. Pero usamos Hadoop, HBase, etc. para manejar cantidades gigantescas de datos, por lo que eso no tiene mucho sentido. El uso de programas secuenciales normales sería muy ineficaz cuando sus datos son demasiado grandes.
Volviendo a la primera parte de su pregunta, Hadoop es básicamente 2 cosas: a Sistema de archivos distribuido (HDFS) + un Marco de computación o procesamiento (MapReduce). Como todos los demás FS, HDFS también nos proporciona almacenamiento, pero de manera tolerante a fallas con un alto rendimiento y un menor riesgo de pérdida de datos (debido a la replicación). Pero, al ser un FS, HDFS carece acceso aleatorio de lectura y escritura. Aquí es donde HBase entra en escena. Es un gran almacén de datos distribuido, escalable, siguiendo el modelo de BigTable de Google. Almacena datos como pares clave / valor.
Llegando a Hive. Nos proporciona datos almacenaje instalaciones sobre un clúster de Hadoop existente. Junto con eso, proporciona una SQL como interfaz que facilita su trabajo, en caso de que provenga de un entorno SQL. Puede crear tablas en Hive y almacenar datos allí. Junto con eso, incluso puede asignar sus tablas HBase existentes a Hive y operar en ellas.
Mientras que Pig es bsicamente un lenguaje de flujo de datos que nos permite procesar enormes cantidades de datos de manera muy fácil y rápida. El cerdo tiene básicamente 2 partes: el cerdo. Interprete y el idioma, CerdoLatino. Usted escribe el script de Pig en PigLatin y, utilizando el intérprete de Pig, los procesa. Pig nos hace la vida mucho más fácil, de lo contrario, escribir MapReduce no siempre es fácil. De hecho, en algunos casos, realmente puede convertirse en un dolor.
Hace algún tiempo escribí un artículo sobre una breve comparación de diferentes herramientas del ecosistema Hadoop. No es una comparación en profundidad, sino una breve introducción a cada una de estas herramientas que puede ayudarlo a comenzar. (Solo para agregar a mi respuesta. No se pretende la autopromoción)
Tanto las consultas de Hive como las de Pig se convierten en trabajos de MapReduce bajo el capó.
HTH
Implementé una plataforma Hive Data recientemente en mi empresa y puedo hablar con ella en primera persona ya que era un equipo de un solo hombre.
Objetivo
- Para que los archivos de registro web diarios recopilados de más de 350 servidores puedan consultarse diariamente a través de algunos SQL como el lenguaje
- Para reemplazar los datos de agregación diarios generados a través de MySQL con Hive
- Cree informes personalizados a través de consultas en Colmena
Opciones de arquitectura
Evalué las siguientes opciones:
- Hive + HDFS
- Hive + HBase – las consultas eran demasiado lentas, así que dejé esta opción
Diseño
- Los archivos de registro diarios se transportaron a HDFS
- Los trabajos de MR analizaron estos archivos de registro y archivos de salida en HDFS
- Cree tablas de Hive con particiones y ubicaciones apuntando a HDFS ubicaciones
- Cree scripts de consulta de Hive (llámelo HQL si te gusta como diferente de SQL) que a su vez ejecutó trabajos de MR en segundo plano y generó datos de agregación
- Pon todos estos pasos en un Oozie flujo de trabajo: programado con Daily Oozie Coordinador
Resumen
HBase es como un mapa. Si conoce la clave, puede obtener el valor instantáneamente. Pero si desea saber cuántas claves enteras en Hbase están entre 1000000 y 2000000, eso no es adecuado para Hbase solo.
Si tiene datos que necesitan ser agregados, resumidos, analizados en filas, considere Colmena.
Ojalá esto ayude.
Colmena en realidad es genial … Lo sé, lo he vivido durante 12 meses … HBase…
Hadoop es un marco que permite el procesamiento distribuido de grandes conjuntos de datos en grupos de computadoras utilizando modelos de programación simples.
Hay cuatro módulos principales en Hadoop.
-
Hadoop común: Las utilidades comunes que admiten los otros módulos de Hadoop.
-
Sistema de archivos distribuido Hadoop (HDFS ™): Un sistema de archivos distribuido que proporciona acceso de alto rendimiento a los datos de la aplicación.
-
Hadoop HILO: Un marco para la programación de trabajos y la gestión de recursos del clúster.
-
Hadoop Mapa reducido: Un sistema basado en YARN para el procesamiento paralelo de grandes conjuntos de datos.
Antes de continuar, observemos que tenemos tres tipos diferentes de datos.
-
Estructurado: Los datos estructurados tienen un esquema sólido y el esquema se verificará durante la operación de escritura y lectura. por ejemplo, datos en sistemas RDBMS como Oracle, MySQL Server, etc.
-
No estructurado: Los datos no tienen ninguna estructura y pueden tener cualquier formato: registros del servidor web, correo electrónico, imágenes, etc.
-
Semiestructurada: Los datos no están estrictamente estructurados, pero tienen cierta estructura. por ejemplo, archivos XML.
Dependiendo del tipo de datos a procesar, tenemos que elegir la tecnología adecuada.
Algunos proyectos más, que forman parte de Hadoop:
-
HBase ™: Una base de datos distribuida escalable que admite el almacenamiento de datos estructurados para tablas grandes.
-
Colmena™: Una infraestructura de almacenamiento de datos que proporciona resumen de datos y consultas ad-hoc.
-
Pig ™: Un lenguaje de flujo de datos de alto nivel y un marco de ejecución para el cálculo paralelo.
Colmena vs cerdo La comparación se puede encontrar en este artículo y en mi otra publicación en esta pregunta SE.
HBASE no reemplazará Map Reduce. HBase es una base de datos distribuida escalable y Mapa reducido es un modelo de programación para el procesamiento distribuido de datos. Map Reduce puede actuar sobre los datos en HBASE durante el procesamiento.
Puedes usar HIVE / HBASE para datos estructurados / semiestructurados y procesarlos con Hadoop Map Reduce
Puedes usar SQOOP para importar datos estructurados de la base de datos RDBMS tradicional Oracle, SQL Server, etc. y procesarlos con Hadoop Map Reduce
Puedes usar CANAL ARTIFICIAL para procesar datos no estructurados y procesar con Hadoop Map Reduce
Eche un vistazo a: Casos de uso de Hadoop.
Colmena debe utilizarse para consultas analíticas de datos recopilados durante un período de tiempo. Por ejemplo, calcular tendencias, resumir los registros del sitio web, pero no se puede utilizar para consultas en tiempo real.
HBase se adapta a la consulta en tiempo real de Big Data. Facebook lo usa para mensajería y análisis en tiempo real.
CERDO se puede utilizar para construir flujos de datos, ejecutar trabajos programados, procesar grandes volúmenes de datos, agregarlos / resumirlos y almacenarlos en sistemas de bases de datos relacionados. Bueno para análisis ad-hoc.
Colmena se puede utilizar para análisis de datos ad-hoc, pero no es compatible con todos los formatos de datos no estructurados a diferencia de PIG.