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:

  1. 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.
  2. 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
  3. 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.
  4. 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
  5. hadoop dfs -cat /foodir/myfile.txt
  6. hadoop dfs -rm /foodir/myfile.txt

Pero, por otro lado, Hbase tiene su propia interfaz en forma de Hbase Shell como, por ejemplo:

  1. hbase (main): 003: 0> crear 'prueba', 'cf'

0 fila (s) en 1.2200 segundos

  1. hbase (main): 004: 0> poner 'prueba', 'fila1', 'cf: a', 'valor1'

0 fila (s) en 0.0560 segundos

  1. hbase (main): 005: 0> poner 'prueba', 'fila2', 'cf: b', 'valor2'

0 fila (s) en 0.0370 segundos

  1. hbase (main): 006: 0> poner 'prueba', 'fila3', 'cf: c', 'valor3'

0 fila (s) en 0.0450 segundos

  1. 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ónHDFSHBase
Por qué los necesitamosNecesita procesar grandes conjuntos de datos en grandes grupos de computadorasHBase es un almacén de datos distribuido orientado a columnas construido sobre HDFS
Los nodos fallan todos los díasa) 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ónAgregar soloEscritura aleatoria, incremental masivo
Leer patrónEscaneo completo de tablas, escaneo de tablas de particionesLectura aleatoria, escaneo de rango pequeño o escaneo de tabla
Patrón W / RHDFS 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 bueno4-5 veces más lento
Almacenaje EstructuradoHágalo usted mismo o TSV o archivo de secuenciaModelo de datos de familia de columna dispersa
Tamaño máximo de datosPor lo general, puede almacenar cerca de aproximadamente 30 PBAproximadamente alrededor de 1 PB
Cambios DinámicosHDFS 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 datosLos 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 datosTodos 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 datosEn HDFS utilizamos la técnica de reducción de mapa que divide los archivos en pares clave - valorHBase se basa en el modelo Bigtable de Google que también usa pares clave-valor
OperacionesTiene operaciones de alta latencia.Tiene operaciones de baja latencia.
AccesibilidadSe 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:

  1. HBase vs Cassandra - Cuál es mejor (infografía)
  2. Descubra las 7 mejores diferencias entre Hadoop y HBase
  3. Top 12 Comparación de Apache Hive vs Apache HBase (Infografía)

Categoría: