¿Cuáles son los beneficios de usar Hadoop o HBase o Hive ?
Según tengo entendido, HBase evita el uso de map-reduce y tiene un almacenamiento orientado a columnas sobre HDFS. Hive es una interfaz tipo sql para Hadoop y HBase .
También me gustaría saber cómo se compara Hive con Pig .
hadoop
hbase
hive
apache-pig
Khalefa
fuente
fuente
Respuestas:
MapReduce es solo un marco informático . HBase no tiene nada que ver con eso. Dicho esto, puede colocar o recuperar datos de manera eficiente desde / hacia HBase escribiendo trabajos 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 altamente ineficiente cuando sus datos sean demasiado grandes.
Volviendo a la primera parte de su pregunta, Hadoop es básicamente 2 cosas: un Sistema de archivos distribuido (HDFS) + un marco de cómputo o procesamiento (MapReduce) . Al igual que 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 de acceso aleatorio de lectura y escritura . Aquí es donde HBase entra en escena. Es un almacén distribuido, escalable y de grandes datos , modelado a partir de la BigTable de Google. Almacena datos como pares clave / valor.
Viniendo a la colmena. Nos proporciona instalaciones de almacenamiento de datos sobre un clúster Hadoop existente. Junto con eso, proporciona una interfaz similar a SQL que facilita su trabajo, en caso de que provenga de un fondo SQL. Puede crear tablas en Hive y almacenar datos allí. Junto con eso, incluso puede asignar sus tablas HBase existentes a Hive y operarlas.
Si bien Pig es básicamente un lenguaje de flujo de datos que nos permite procesar enormes cantidades de datos de manera fácil y rápida. Básicamente, Pig tiene 2 partes: el intérprete de Pig y el lenguaje PigLatin . Escribes un script de Pig en PigLatin y el intérprete de Pig los procesa. Pig hace nuestra 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.
Había escrito un artículo sobre una breve comparación de diferentes herramientas del ecosistema Hadoop hace algún tiempo. 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 autopromoción)
Las consultas de Hive y Pig se convierten en trabajos MapReduce debajo del capó.
HTH
fuente
yarn
Implementé una plataforma Hive Data recientemente en mi empresa y puedo hablar en primera persona desde que era un equipo de un solo hombre.
Objetivo
Opciones de arquitectura
Comparé las siguientes opciones:
Diseño
Resumen
HBase es como un mapa. Si conoce la clave, puede obtener el valor al instante. Pero si desea saber cuántas claves enteras en Hbase están entre 1000000 y 2000000, eso no es adecuado solo para Hbase .
Si tiene datos que deben agregarse, acumularse, analizarse en filas, considere Hive .
Espero que esto ayude.
Colmena en realidad rocas ... Lo sé, lo he vivido durante 12 meses ... También lo hace HBase ...
fuente
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 Common : las utilidades comunes que admiten los otros módulos de Hadoop.
Sistema de archivos distribuidos de Hadoop ( HDFS ™ ): un sistema de archivos distribuido que proporciona acceso de alto rendimiento a los datos de la aplicación.
Hadoop YARN : un marco para la programación de trabajos y la gestión de recursos de clúster.
Hadoop MapReduce : un sistema basado en HILO para el procesamiento paralelo de grandes conjuntos de datos.
Antes de continuar, tengamos en cuenta 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 ser de cualquier forma: registros del servidor web, correo electrónico, imágenes, etc.
Semi-estructurado : los datos no están estrictamente estructurados pero tienen alguna estructura. por ejemplo, archivos XML.
Dependiendo del tipo de datos a procesar, tenemos que elegir la tecnología adecuada.
Algunos proyectos más, que son parte de Hadoop:
HBase ™ : una base de datos escalable y distribuida que admite el almacenamiento de datos estructurados para tablas grandes.
Hive ™: una infraestructura de almacenamiento de datos que proporciona resumen de datos y consultas ad-hoc.
Pig ™ : un lenguaje de alto nivel de flujo de datos y marco de ejecución para computación paralela.
La comparación de Hive Vs PIG 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 Map Reduce es un modelo de programación para el procesamiento distribuido de datos. Map Reduce puede actuar sobre los datos en HBASE en el procesamiento.
Puede usar HIVE / HBASE para datos estructurados / semiestructurados y procesarlos con Hadoop Map Reduce
Puede usar SQOOP para importar datos estructurados de la base de datos RDBMS tradicional Oracle, SQL Server, etc. y procesarlos con Hadoop Map Reduce
Puede usar FLUME para procesar datos no estructurados y procesar con Hadoop Map Reduce
Echa un vistazo a: Casos de uso de Hadoop .
Hive debe usarse 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 las consultas en tiempo real de Big Data. Facebook lo usa para mensajes y análisis en tiempo real.
PIG 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 de relaciones. Bueno para análisis ad-hoc.
Hive se puede utilizar para el análisis de datos ad-hoc, pero no puede admitir todos los formatos de datos no estructurados a diferencia de PIG.
fuente
Tenga en cuenta que trabaja con RDBMS y tiene que seleccionar qué usar (escaneos completos de tablas o acceso al índice), pero solo uno de ellos.
Si selecciona el escaneo completo de la tabla, use la colmena. Si el acceso al índice - HBase.
fuente
Para una comparación entre Hadoop Vs Cassandra / HBase, lea esta publicación .
Básicamente, HBase permite una lectura y escritura realmente rápidas con escalabilidad. ¿Qué tan rápido y escalable? Facebook lo usa para administrar sus estados de usuario, fotos, mensajes de chat, etc. HBase es tan rápido que a veces Facebook ha desarrollado pilas para usar HBase como el almacén de datos para Hive.
Where As Hive es más como una solución de Data Warehousing. Puede usar una sintaxis similar a SQL para consultar el contenido de Hive que resulta en un trabajo Map Reduce. No es ideal para sistemas transaccionales rápidos.
fuente
Trabajé en el procesamiento de la arquitectura Lambda en tiempo real y cargas por lotes. El procesamiento en tiempo real es necesario cuando se deben tomar decisiones rápidas en caso de envío de alarma de incendio por sensor o detección de fraude en caso de transacciones bancarias. El procesamiento por lotes es necesario para resumir los datos que se pueden alimentar a los sistemas de BI.
utilizamos Hadoop tecnologías del ecosistema para las aplicaciones anteriores.
Procesamiento en tiempo real
Apache Storm: procesamiento de datos de flujo, aplicación de reglas
HBase: almacén de datos para servir el panel en tiempo real
Procesamiento por lotes Hadoop: procesamiento de una gran cantidad de datos. Descripción general de 360 grados o agregar contexto a los eventos. Las interfaces o marcos como Pig, MR, Spark, Hive, Shark ayudan en la informática. Esta capa necesita un planificador para el que Oozie es una buena opción.
Capa de manejo de eventos
Apache Kafka fue la primera capa en consumir eventos de alta velocidad del sensor. Kafka sirve el flujo de datos de análisis en tiempo real y por lotes a través de conectores Linkedin.
fuente
Entendiendo en profundidad
Hadoop
Hadoop
es un proyecto de código abierto de laApache
fundación. Es un marco escritoJava
, desarrollado originalmente por Doug Cutting en 2005. Fue creado para admitir la distribuciónNutch
del motor de búsqueda de texto.Hadoop
utiliza lasMap Reduce
tecnologías de sistema de archivos de Google y Google como base.Características de Hadoop
Hadoop
es para alto rendimiento en lugar de baja latencia. Es una operación por lotes que maneja cantidades masivas de datos; por lo tanto, el tiempo de respuesta no es inmediato.RDBMS
.Versiones de Hadoop
Hay dos versiones de
Hadoop
disponibles:Hadoop 1.0
Tiene dos partes principales:
1. Marco de almacenamiento de datos
Es un sistema de archivos de uso general llamado Hadoop Distributed File System (
HDFS
).HDFS
no tiene esquemaSimplemente almacena archivos de datos y estos archivos de datos pueden estar en casi cualquier formato.
La idea es almacenar archivos tan cerca de su forma original como sea posible.
Esto a su vez proporciona a las unidades de negocio y a la organización la flexibilidad y agilidad que tanto necesitan sin preocuparse demasiado por lo que puede implementar.
2. Marco de procesamiento de datos
Este es un modelo de programación funcional simple inicialmente popularizado por Google como
MapReduce
.Básicamente utiliza dos funciones:
MAP
yREDUCE
para procesar datos.Los "Mappers" toman un conjunto de pares clave-valor y generan datos intermedios (que es otra lista de pares clave-valor).
Los "Reductores" luego actúan sobre esta entrada para producir los datos de salida.
Las dos funciones aparentemente funcionan de forma aislada entre sí, lo que permite que el procesamiento se distribuya altamente en forma altamente paralela, de tolerancia a fallas y escalable.
Limitaciones de Hadoop 1.0
La primera limitación fue el requisito de
MapReduce
experiencia en programación.Solo admitía el procesamiento por lotes que, aunque es adecuado para tareas como el análisis de registros, proyectos de minería de datos a gran escala, pero bastante inadecuado para otros tipos de proyectos.
Una limitación importante fue que
Hadoop 1.0
estaba estrechamente relacionada con la computaciónMapReduce
, lo que significaba que los proveedores de administración de datos establecidos se quedaron con dos opiniones:Reescriba su funcionalidad
MapReduce
para que pueda ejecutarseHadoop
oExtraer datos
HDFS
o procesarlos fuera deHadoop
.Ninguna de las opciones era viable ya que conducía a ineficiencias de proceso causadas por los datos que se movían dentro y fuera del
Hadoop
clúster.Hadoop 2.0
En
Hadoop 2.0
,HDFS
sigue siendo el marco de almacenamiento de datos.Sin embargo, una nueva y separada marco de gestión de recurso llamado Y et Un tro R esource N egotiater ( HILO ) ha sido añadido.
YARN admite cualquier aplicación capaz de dividirse en tareas paralelas.
YARN coordina la asignación de subtareas de la solicitud presentada, mejorando así la flexibilidad, escalabilidad y eficiencia de las aplicaciones.
Funciona al tener un Application Master en lugar de Job Tracker , ejecutando aplicaciones en recursos gobernados por el nuevo Node Manager .
ApplicationMaster puede ejecutar cualquier aplicación y no solo
MapReduce
.Esto significa que no solo admite el procesamiento por lotes sino también el procesamiento en tiempo real.
MapReduce
ya no es la única opción de procesamiento de datos.Ventajas de Hadoop
Almacena datos en su origen de. No se impone ninguna estructura al teclear o almacenar datos.
HDFS
es un esquema menos. Solo más tarde, cuando los datos deben procesarse, la estructura se impone a los datos sin procesar.Es escalable
Hadoop
puede almacenar y distribuir conjuntos de datos muy grandes en cientos de servidores económicos que operan en paralelo.Es resistente al fracaso.
Hadoop
es tolerancia a fallas Practica la replicación de datos diligentemente, lo que significa que cada vez que se envían datos a cualquier nodo, los mismos datos también se replican a otros nodos en el clúster, asegurando así que en caso de falla del nodo, siempre habrá otra copia de datos disponible para su uso.Es flexible. Una de las principales ventajas
Hadoop
es que puede funcionar con cualquier tipo de datos: estructurados, no estructurados o semiestructurados. Además, el procesamiento es extremadamente rápidoHadoop
debido al paradigma de "mover código a datos".Ecosistema Hadoop
Los siguientes son los componentes del
Hadoop
ecosistema:HDFS :
Hadoop
Sistema de archivos distribuido. Simplemente almacena los archivos de datos lo más cerca posible del formulario original.HBase : es la base de datos de Hadoop y se compara bien con una
RDBMS
. Es compatible con el almacenamiento de datos estructurados para tablas grandes.Colmena : permite el análisis de grandes conjuntos de datos utilizando un lenguaje muy similar al estándar
ANSI SQL
, lo que implica que cualquier persona familiarizadaSQL
debería poder acceder a los datos en unHadoop
clúster.Pig : es un lenguaje de flujo de datos fácil de entender. Ayuda con el análisis de grandes conjuntos de datos, lo cual es bastante adecuado
Hadoop
.Pig
El intérprete convierte automáticamente los scripts enMapReduce
trabajosPig
.ZooKeeper : es un servicio de coordinación para aplicaciones distribuidas.
Oozie : Es un
schedular
sistema de flujo de trabajo para administrarHadoop
trabajos de Apache .Mahout : es una biblioteca escalable de aprendizaje automático y minería de datos.
Chukwa : Es un sistema de recopilación de datos para gestionar grandes sistemas distribuidos.
Sqoop : se utiliza para transferir datos masivos entre
Hadoop
almacenes de datos estructurados como bases de datos relacionales.Ambari : es una herramienta basada en la web para aprovisionar, administrar y monitorear
Hadoop
clústeres.Colmena
Hive
es una herramienta de infraestructura de almacenamiento de datos para procesar datos estructuradosHadoop
. Reside ademásHadoop
para resumir Big Data y facilita la consulta y el análisis.La colmena no es
Una base de datos relacional
Un diseño para el procesamiento de transacciones en línea (
OLTP
).Un lenguaje para consultas en tiempo real y actualizaciones a nivel de fila.
Características de la colmena
Almacena el esquema en la base de datos y procesa los datos en
HDFS
.Está diseñado para
OLAP
.Proporciona
SQL
lenguaje de tipo para consultas llamadasHiveQL
oHQL
.Es más familiar, rápido, escalable y extensible.
Arquitectura de la colmena
Los siguientes componentes están contenidos en Hive Architecture:
Interfaz de usuario :
Hive
es unadata warehouse
infraestructura que puede crear interacción entre el usuario yHDFS
. Las interfaces de usuario queHive
admiten son Hive Web UI, Hive Command line y Hive HD Insight (en Windows Server).MetaStore :
Hive
elige el respectivodatabase
servers
para almacenar el esquema oMetadata
de tablas, bases de datos, columnas en una tabla, sus tipos de datos yHDFS
mapeo.HiveQL Process Engine :
HiveQL
es similar a laSQL
consulta de información de esquema en elMetastore
. Es uno de los reemplazos del enfoque tradicional para elMapReduce
programa. En lugar de escribirMapReduce
enJava
, podemos escribir una consulta paraMapReduce
y procesarla.Exceution Engine : La parte de conjunción del
HiveQL
motor de proceso yMapReduce
es elHive
motor de ejecución. El motor de ejecución procesa la consulta y genera resultados igual queMapReduce results
. Utiliza el sabor deMapReduce
.HDFS o HBase :
Hadoop
Sistema de archivos distribuido oHBase
son las técnicas de almacenamiento de datos para almacenar datos en el sistema de archivos.fuente
En primer lugar, debemos aclarar que Hadoop se creó como una alternativa más rápida a RDBMS . Para procesar gran cantidad de datos a una velocidad muy rápida, que anteriormente requería mucho tiempo en RDBMS.
Ahora uno debe saber los dos términos:
Datos estructurados : estos son los datos que utilizamos en RDBMS tradicionales y se dividen en estructuras bien definidas.
Datos no estructurados : es importante entender esto, aproximadamente el 80% de los datos mundiales son no estructurados o semiestructurados. Estos son los datos que están en su forma cruda y no pueden procesarse usando RDMS. Ejemplo: facebook, datos de twitter. ( http://www.dummies.com/how-to/content/unstructured-data-in-a-big-data-environment.html ).
Por lo tanto, se generó una gran cantidad de datos en los últimos años y los datos fueron en su mayoría no estructurados, lo que dio a luz a HADOOP. Se usó principalmente para una gran cantidad de datos que lleva una cantidad de tiempo inviable usando RDBMS. Tenía muchos inconvenientes, que no podía usarse para datos comparativamente pequeños en tiempo real, pero lograron eliminar sus inconvenientes en la versión más reciente.
Antes de continuar, me gustaría decir que se crea una nueva herramienta de Big Data cuando ven una falla en las herramientas anteriores. Entonces, cualquier herramienta que vea que se crea se ha hecho para superar el problema de las herramientas anteriores.
Hadoop se puede decir simplemente como dos cosas: Mapreduce y HDFS . Mapreduce es donde tiene lugar el procesamiento y HDFS es la base de datos donde se almacenan los datos. Esta estructura siguió el principio WORM , es decir, escribir una vez, leer varias veces. Entonces, una vez que hemos almacenado datos en HDFS, no podemos hacer cambios. Esto llevó a la creación de HBASE , un producto NOSQL donde podemos hacer cambios en los datos también después de escribirlos una vez.
Pero con el tiempo vimos que Hadoop tenía muchas fallas y para eso creamos un entorno diferente sobre la estructura de Hadoop. PIG y HIVE son dos ejemplos populares.
HIVE fue creado para personas con antecedentes de SQL . Las consultas escritas son similares a SQL nombradas como HIVEQL . HIVE fue desarrollado para procesar datos completamente estructurados . No se utiliza para datos estructurados.
PIG, por otro lado, tiene su propio lenguaje de consulta, es decir, PIG LATIN . Puede ser utilizado tanto para la estructura , así como los datos no estructurados .
Pasando a la diferencia de cuándo usar HIVE y cuándo usar PIG, no creo que nadie más que el arquitecto de PIG pueda decir. Siga el enlace: https://developer.yahoo.com/blogs/hadoop/comparing-pig-latin-sql-constructing-data-processing-pipelines-444.html
fuente
HDFS significa Hadoop Distributed File System que utiliza el modelo de procesamiento computacional Map-Reduce.
HBase es un almacenamiento de valor clave, bueno para leer y escribir casi en tiempo real.
Hive se utiliza para la extracción de datos del HDFS utilizando una sintaxis similar a SQL. La colmena usa lenguaje HQL.
Pig es un lenguaje de flujo de datos para crear ETL. Es un lenguaje de script.
fuente
Déjame intentar responder en pocas palabras.
Hadoop es un ecosistema que comprende todas las demás herramientas. Entonces, no puedes comparar Hadoop pero puedes comparar MapReduce.
Aquí están mis pocos centavos:
fuente
Pig: es mejor manejar archivos y datos de limpieza Ejemplo: eliminar valores nulos, manejo de cadenas, valores innecesarios Colmena: para consultar datos limpios
fuente
1.Estamos utilizando Hadoop para almacenar datos grandes (datos de estructura, desestructuración y semiestructura) en el formato de archivo de formulario como txt, csv.
2. Si queremos actualizaciones en columnas en nuestros datos, entonces estamos usando la herramienta Hbase
3. En el caso de Hive, estamos almacenando Big data que está en formato estructurado y, además, estamos proporcionando análisis sobre esos datos.
4.Pig es una herramienta que utiliza el lenguaje latino Pig para analizar datos que están en cualquier formato (estructura, semistructura y desestructuración).
fuente
La limpieza de datos en Pig es muy fácil, un enfoque adecuado sería limpiar los datos a través de pig y luego procesar los datos a través de la colmena y luego cargarlos en hdfs.
fuente
El uso de Hive, Hbase y Pig fue mi experiencia en tiempo real en diferentes proyectos.
La colmena se usa principalmente para:
Propósito analítico donde necesita hacer análisis sobre datos históricos
Generación de informes comerciales basados en ciertas columnas.
Gestión eficiente de los datos junto con información de metadatos
Unir tablas en ciertas columnas que se usan con frecuencia mediante el concepto de agrupación
Almacenamiento y consulta eficiente utilizando el concepto de particionamiento
No es útil para operaciones a nivel de transacción / fila como actualizar, eliminar, etc.
El cerdo se usa principalmente para:
Análisis de datos frecuentes en grandes datos.
Generar valores / recuentos agregados en grandes datos
Generar indicadores clave de rendimiento a nivel empresarial con mucha frecuencia
Hbase se usa principalmente:
Para el procesamiento de datos en tiempo real
Para gestionar eficientemente el esquema complejo y anidado
Para consultas en tiempo real y resultados más rápidos
Para facilitar la escalabilidad con columnas
Útil para operaciones a nivel de transacción / fila como actualizar, eliminar, etc.
fuente
La respuesta corta a esta pregunta es:
Hadoop: es un marco que facilita el sistema de archivos distribuido y el modelo de programación que nos permite almacenar datos de gran tamaño y procesar datos de manera distribuida de manera muy eficiente y con muy poco tiempo de procesamiento en comparación con los enfoques tradicionales.
(HDFS - Sistema de archivos distribuidos Hadoop) (Map Reduce - Modelo de programación para procesamiento distribuido)
Colmena: es un lenguaje de consulta que permite leer / escribir datos del sistema de archivos distribuido de Hadoop de una manera muy popular como SQL. Esto hizo la vida más fácil para muchas personas en segundo plano que no son de programación, ya que ya no tienen que escribir el programa Map-Reduce, excepto en escenarios muy complejos donde Hive no es compatible.
Hbase: es una base de datos NoSQL en columnas. La capa de almacenamiento subyacente para Hbase es nuevamente HDFS. El caso de uso más importante para esta base de datos es poder almacenar miles de millones de filas con millones de columnas. La función de baja latencia de Hbase ayuda al acceso más rápido y aleatorio del registro sobre los datos distribuidos, es una característica muy importante para que sea útil para proyectos complejos como los motores de recomendación. Además, su capacidad de control de versiones a nivel de registro permite al usuario almacenar datos transaccionales de manera muy eficiente (esto resuelve el problema de actualizar los registros que tenemos con HDFS y Hive)
Espero que esto sea útil para comprender rápidamente las 3 características anteriores.
fuente
Creo que este hilo no ha hecho en particular justicia a HBase y Pig en particular. Si bien creo que Hadoop es la opción del sistema de archivos distribuido y resistente para implementaciones de grandes lagos de datos, la elección entre HBase y Hive está particularmente bien segregada.
Como en muchos casos de uso, tienen un requisito particular de interfaces similares a SQL o No SQL. Con Phoenix en la cima de HBase, aunque las capacidades similares a SQL son ciertamente alcanzables, sin embargo, el rendimiento, las integraciones de terceros, la actualización del tablero son una especie de experiencias dolorosas. Sin embargo, es una excelente opción para bases de datos que requieren escala horizontal.
Pig es particularmente excelente para lotes no recursivos como cálculos o canalizaciones ETL (en algún lugar, donde supera a Spark en una distancia cómoda). Además, sus implementaciones de flujo de datos de alto nivel son una excelente opción para consultas por lotes y secuencias de comandos. La elección entre Pig y Hive también se basa en la necesidad de las secuencias de comandos del lado del cliente o del servidor, los formatos de archivo requeridos, etc. Pig admite el formato de archivo Avro que no es cierto en el caso de Hive. La elección de 'lenguaje de flujo de datos de procedimiento' versus 'lenguaje de flujo de datos declarativo' también es un argumento sólido para la elección entre cerdo y colmena.
fuente