Diferencia entre HDFS y HBase
HDFS (Sistema de archivos distribuidos de Hadoop) HDFS le permite almacenar grandes cantidades de datos de manera distribuida y redundante, que se ejecuta en hardware básico. HBase (base de datos de Hadoop) es una base de datos NoSQL que se ejecuta en la parte superior de su clúster Hadoop
Echemos un vistazo a los componentes y la arquitectura de HDFS y HBase respectivamente:
Componentes de HDFS
- NameNode
- DataNode
NameNode: NameNode puede considerarse como un maestro del sistema. Mantiene el árbol del sistema de archivos y los metadatos de todos los archivos y directorios presentes en el sistema. Dos archivos 'Imagen de espacio de nombres' y 'registro de edición' se utilizan para almacenar información de metadatos. Namenode tiene conocimiento de todos los nodos de datos que contienen bloques de datos para un archivo determinado, sin embargo, no almacena ubicaciones de bloques de forma persistente. Esta información se reconstruye cada vez a partir de nodos de datos cuando se inicia el sistema.
DataNode: DataNodes son esclavos que residen en cada máquina en un clúster y proporcionan el almacenamiento real. Es responsable de atender, leer y escribir solicitudes para los clientes.
Arquitectura HDFS: -
Componentes de HBase: -
- Maestro Hbase
- Servidor de región
- Región
- Zookeeper
HMaster : es el servidor maestro en la arquitectura HBase. Es el agente de monitoreo monitorear todo el Servidor de Región y también es responsabilidad de HMaster ser la interfaz para todos los cambios de metadatos. Se ejecuta en NameNode.
Servidores de regiones: cuando el Servidor de regiones recibe solicitudes de escritura y lectura del cliente, asigna la solicitud a una región específica, donde reside la familia de columnas real. Sin embargo, el cliente puede contactar directamente con los servidores de la Región, no es necesario el permiso obligatorio de HMaster para la comunicación con los Servidores de la Región. El cliente requiere ayuda de HMaster cuando se requieren operaciones relacionadas con metadatos y cambios de esquema.
Regiones: las regiones son los elementos básicos de construcción del clúster HBase que consiste en la distribución de tablas y se componen de familias de columnas. Contiene varias tiendas, una para cada familia de columnas. Se compone principalmente de dos componentes, que son Memstore y Hfile.
ZooKeeper: en Hbase, Zookeeper es un servidor de monitoreo centralizado que mantiene la información de configuración y proporciona sincronización distribuida. La sincronización distribuida es acceder a las aplicaciones distribuidas que se ejecutan en el clúster con la responsabilidad de proporcionar servicios de coordinación entre nodos. Si el cliente quiere comunicarse con las regiones, el cliente del servidor debe primero acercarse a ZooKeeper.
Arquitectura de HBase: - HBase es parte del ecosistema de Hadoop.
Modelo en profundidad: -
Comparación cara a cara entre HDFS y HBase (infografía)
A continuación se muestra la comparación entre los 14 principales entre HDFS y HBase
Diferencias clave entre HDFS y HBase
A continuación se muestra la diferencia entre HDFS y HBase:
- HDFS es un sistema de archivos distribuido que es muy adecuado para el almacenamiento de archivos grandes. Pero HBase, por otro lado, está construido sobre HDFS y proporciona búsquedas rápidas de registros (y actualizaciones) para tablas grandes.
- HDFS se ha basado en el sistema de archivos GFS. Pero HBase se distribuye: utiliza HDFS para almacenamiento, orientado a columnas, multidimensional (versiones) y sistema de almacenamiento
- HDFS usa HIVE como uno de sus componentes para el lenguaje quire que es HIVE Query Language (HQL), pero Hbase NO es una base de datos SQL que significa: - Sin combinaciones, sin motor de consulta, sin tipos de datos, sin (maldito) SQL, sin esquema y no se necesita DBA.
- Como HDFS es una unidad de almacenamiento distribuida, por lo tanto, no tiene un lenguaje específico que no sean los comandos utilizados como el sabor UNIX, como por ejemplo: - Hadoop dfs -mkdir / foodir
- hadoop dfs -cat /foodir/myfile.txt
- hadoop dfs -rm /foodir/myfile.txt
Pero, por otro lado, Hbase tiene su propia interfaz en forma de Hbase Shell como, por ejemplo:
- hbase (main): 003: 0> crear 'prueba', 'cf'
0 fila (s) en 1.2200 segundos
- hbase (main): 004: 0> poner 'prueba', 'fila1', 'cf: a', 'valor1'
0 fila (s) en 0.0560 segundos
- hbase (main): 005: 0> poner 'prueba', 'fila2', 'cf: b', 'valor2'
0 fila (s) en 0.0370 segundos
- hbase (main): 006: 0> poner 'prueba', 'fila3', 'cf: c', 'valor3'
0 fila (s) en 0.0450 segundos
- hbase (main): 007: 0> escaneo 'prueba'
COLUMNA DE FILA + CELDA
fila1 columna = cf: a, marca de tiempo = 1288380727188, valor = valor1
fila2 columna = cf: b, marca de tiempo = 1288380738440, valor = valor2
fila3 columna = cf: c, marca de tiempo = 1288380747365, valor = valor3
3 fila (s) en 0.0590 segundos
Tabla de comparación HDFS vs HBase
Bases para la comparación | HDFS | HBase |
Por qué los necesitamos | Necesita procesar grandes conjuntos de datos en grandes grupos de computadoras | HBase es un almacén de datos distribuido orientado a columnas construido sobre HDFS |
Los nodos fallan todos los días | a) Se espera una falla, en lugar de excepcional b) El número de nodos en un clúster no es constante | HBase es un proyecto de código abierto de Apache cuyo objetivo es proporcionar almacenamiento para la Computación Distribuida de Hadoop |
Escribir patrón | Agregar solo | Escritura aleatoria, incremental masivo |
Leer patrón | Escaneo completo de tablas, escaneo de tablas de particiones | Lectura aleatoria, escaneo de rango pequeño o escaneo de tabla |
Patrón W / R | HDFS es ideal para casos de uso de escritura única y lectura múltiple. | HBase es ideal para escritura aleatoria y lectura de datos almacenados en HDFS. |
Rendimiento de la colmena (SQL) | Relativamente muy bueno | 4-5 veces más lento |
Almacenaje Estructurado | Hágalo usted mismo o TSV o archivo de secuencia | Modelo de datos de familia de columna dispersa |
Tamaño máximo de datos | Por lo general, puede almacenar cerca de aproximadamente 30 PB | Aproximadamente alrededor de 1 PB |
Cambios Dinámicos | HDFS tiene una arquitectura rígida que no permite cambios. No facilita el almacenamiento dinámico. | HBase permite cambios dinámicos y se puede utilizar para aplicaciones independientes. |
Distribución de datos | Los datos se almacenan de manera distribuida entre los nodos en un clúster. Los datos se dividen en bloques y luego se almacenan en los nodos presentes en el clúster HDFS. | Las tablas se distribuyen en el clúster a través de regiones, y las regiones se dividen y redistribuyen automáticamente a medida que crecen sus datos. |
Almacenamiento de datos | Todos los datos se almacenan en forma de archivos pequeños y todos los archivos tienen un tamaño típico de 64 MB (que es 128 MB en la versión más reciente) | Todos los datos se almacenan en forma de tablas, filas y columnas. |
Modelado de datos | En HDFS utilizamos la técnica de reducción de mapa que divide los archivos en pares clave - valor | HBase se basa en el modelo Bigtable de Google que también usa pares clave-valor |
Operaciones | Tiene operaciones de alta latencia. | Tiene operaciones de baja latencia. |
Accesibilidad | Se accede principalmente a través de trabajos MR (Map Reduce) | Se puede acceder a través de comandos de shell, API de cliente en Java, REST, Avro o Thrift |
Conclusión: HDFS vs HBase
En conclusión general, tanto HDFS como HBase tienen tecnologías maravillosas propias. Tanto HDFS como HBase fueron creados para almacenar Big Data y facilitar el acceso y la computación. Tanto HDFS como HBase van uno al lado del otro, ya que un HDFS almacena los datos y el otro HBase pone un esquema en los datos sobre cómo almacenarlos y recuperarlos más tarde para el uso del cliente.
Hbase es una de las bases de datos distribuidas orientadas a columnas NoSql disponibles en apache foundation. HBase ofrece más rendimiento para recuperar menos registros en lugar de Hadoop o Hive. Es muy fácil buscar cualquier valor de entrada dado porque admite indexación, transacciones y actualizaciones.
Podemos realizar análisis en línea en tiempo real utilizando Hbase integrado con el ecosistema Hadoop. Tiene un fragmentación automática y configurable para conjuntos de datos o tablas y proporciona API relajantes para realizar los trabajos de MapReduce.
Artículo recomendado
Esta ha sido una guía para HDFS vs HBase, su significado, comparación directa, diferencias clave, tabla de comparación y conclusión. Este artículo tiene toda la diferencia útil entre HDFS y HBase. También puede consultar los siguientes artículos para obtener más información:
- HBase vs Cassandra - Cuál es mejor (infografía)
- Descubra las 7 mejores diferencias entre Hadoop y HBase
- Top 12 Comparación de Apache Hive vs Apache HBase (Infografía)