Esta es una pregunta ingenua, pero soy nuevo en el paradigma NoSQL y no sé mucho al respecto. Entonces, si alguien puede ayudarme a comprender claramente la diferencia entre HBase y Hadoop, o si da algunos consejos que podrían ayudarme a comprender la diferencia.
Hasta ahora, hice un poco de investigación y acc. Según tengo entendido, Hadoop proporciona un marco para trabajar con fragmentos de datos sin procesar (archivos) en HDFS y HBase es un motor de base de datos por encima de Hadoop, que básicamente funciona con datos estructurados en lugar de fragmentos de datos sin procesar. Hbase proporciona una capa lógica sobre HDFS tal como lo hace SQL. ¿Es correcto?
Por favor, siéntase libre de corregirme.
Gracias.
Respuestas:
Hadoop es básicamente 3 cosas, un FS (Hadoop Distributed File System), un marco de cómputo (MapReduce) y un puente de administración (Yet Another Resource Negotiator). HDFS le permite almacenar grandes cantidades de datos de manera distribuida (proporciona un acceso de lectura / escritura más rápido) y redundante (proporciona una mejor disponibilidad). Y MapReduce le permite procesar estos enormes datos de manera distribuida y paralela. Pero MapReduce no se limita solo a HDFS. Al ser un FS, HDFS carece de la capacidad de lectura / escritura aleatoria. Es bueno para el acceso secuencial a datos. Y aquí es donde HBase entra en escena. Es una base de datos NoSQL que se ejecuta en la parte superior de su clúster Hadoop y le proporciona acceso aleatorio de lectura / escritura en tiempo real a sus datos.
Puede almacenar datos estructurados y no estructurados en Hadoop y HBase también. Ambos le proporcionan múltiples mecanismos para acceder a los datos, como el shell y otras API. Y, HBase almacena datos como pares clave / valor en forma de columnas, mientras que HDFS almacena datos como archivos planos. Algunas de las características más destacadas de ambos sistemas son:
Hadoop
HBase
Hadoop es más adecuado para el procesamiento por lotes fuera de línea, mientras que HBase se usa cuando tiene necesidades en tiempo real.
Una comparación análoga sería entre MySQL y Ext4.
fuente
El proyecto Apache Hadoop incluye cuatro módulos clave
HBase es una base de datos escalable y distribuida que admite el almacenamiento de datos estructurados para tablas grandes. Al igual que
Bigtable
aprovecha el almacenamiento de datos distribuido proporcionado por el Sistema de archivos de Google, Apache HBase proporciona capacidades similares a Bigtable además de Hadoop y HDFS.Cuándo usar HBase:
Pero HBase tiene algunas limitaciones.
Resumen:
Echa un vistazo a Do's and Don't of HBase del Blog de cloudera .
fuente
Hadoop utiliza un sistema de archivos distribuido, es decir, HDFS para almacenar bigdata. Pero existen ciertas limitaciones de HDFS e Inorder para superar estas limitaciones, surgieron bases de datos NoSQL como HBase, Cassandra y Mongodb.
Hadoop solo puede realizar el procesamiento por lotes y solo se podrá acceder a los datos de forma secuencial. Eso significa que uno tiene que buscar en todo el conjunto de datos incluso para los trabajos más simples. Un conjunto de datos enorme cuando se procesa da como resultado otro conjunto de datos enorme, que también debe procesarse secuencialmente. En este punto, se necesita una nueva solución para acceder a cualquier punto de datos en una sola unidad de tiempo (acceso aleatorio).
Al igual que todos los demás FileSystems, HDFS 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). Sin embargo, al ser un Sistema de archivos, 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. Cassandra es algo similar a hbase.
fuente
Tanto HBase como HDFS en una imagen
HDFS es un sistema de archivos distribuido que es muy adecuado para el almacenamiento de archivos grandes. que no proporciona búsquedas rápidas de registros individuales en archivos.
HBase , por otro lado, está construido sobre HDFS y proporciona búsquedas rápidas de registros (y actualizaciones) para tablas grandes. Esto a veces puede ser un punto de confusión conceptual. HBase coloca internamente sus datos en "StoreFiles" indexados que existen en HDFS para búsquedas de alta velocidad.
Bueno, a nivel de infraestructura, cada máquina salve en el clúster tiene demonios siguientes
HBase logra búsquedas rápidas en HDFS (a veces también en otros sistemas de archivos distribuidos) como almacenamiento subyacente, utilizando el siguiente modelo de datos
Mesa
Fila
Columna
Familia de columnas
Calificador de columna
Célula
Marca de tiempo
Flujo de solicitud de lectura del cliente:
¿Cuál es la metatabla en la imagen de arriba?
fuentes y más información:
fuente
Referencia: http://www.quora.com/What-is-the-difference-between-HBASE-and-HDFS-in-Hadoop
Hadoop es un nombre general para varios subsistemas: 1) HDFS. Un sistema de archivos distribuido que distribuye datos a través de un grupo de máquinas que se encarga de la redundancia, etc. 2) Map Reduce. Un sistema de administración de trabajos sobre HDFS: para administrar trabajos de reducción de mapas (y otros tipos) que procesan los datos almacenados en HDFS.
Básicamente significa que es un sistema fuera de línea: almacena datos en HDFS y puede procesarlos ejecutando trabajos.
HBase por otro lado en una base de datos basada en columnas. Utiliza HDFS como almacenamiento, que se encarga de la copia de seguridad \ redundancia \ etc., pero es una "tienda en línea", lo que significa que puede consultar por filas / filas específicas, etc. y obtener un valor inmediato.
fuente
HDFS es un sistema de archivos distribuido basado en Java que le permite almacenar grandes datos en múltiples nodos en un clúster Hadoop. Mientras que HBase es una base de datos NoSQL (similar a NTFS y MySQL).
Tanto HDFS como HBase almacenan todo tipo de datos, como estructurados, semiestructurados y no estructurados en un entorno distribuido.
Diferencias entre HDFS y HBase
HDFS almacena grandes conjuntos de datos en un entorno distribuido y aprovecha el procesamiento por lotes de esos datos.
Mientras que HBase almacena datos de una manera orientada a columnas, donde cada columna se almacena de manera conjunta, de modo que la lectura se vuelve más rápida y se aprovecha el procesamiento en tiempo real.
fuente