Want to create interactive content? It’s easy in Genially!
Clase HBASE
Huizilopoztli Luna G
Created on March 13, 2024
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Audio tutorial
View
Pechakucha Presentation
View
Desktop Workspace
View
Decades Presentation
View
Psychology Presentation
View
Medical Dna Presentation
View
Geometric Project Presentation
Transcript
Apache HBASE
Autor: Dr. Carlos H. Espino Salinas
13/03/2024
01
iNTRODUCCIÓN
¿Qué es HBase?
01. INTRODUCCIÓN
HBase es una base de datos NoSQL de tipo clave-valor o columnar distribuida que ejecuta sobre HDFS (Hadoop Distributed File System). Proporciona una capa para acceder y actualizar los ficheros de datos en formato estructurado con operaciones CRUD (Create, Read, Update, Delete).
Nos aporta lecturas de datos muy rápidas y está pensada para arquitecturas y sistemas de datos que escriben una vez y leen muchas veces. Eso es debido a que cuando se escriben ficheros en HDFS no se pueden modificar, pero si acceder a ellos con un gran rendimiento.
01. Introducción
Modelo de Almacenamiento de Datos
El modelo de datos está basado en Google Big Table, por lo que es muy similar. Está diseñado para proporcionar acceso aleatorio a una gran cantidad de datos estructurados.
En HBase los datos se dividen en tablas. Estas tablas, tienen filas que representan los datos. Cada fila tiene una clave que actúa de identificador único y que divide las tablas en regiones. Esta clave de fila es un array de bytes.
Como en una base de datos relacional o SQL, las columnas representan los atributos. Las columnas se agrupan en familias de columnas (con valores semánticos relacionados), que se almacenan en los ficheros de HDFS denominados HFiles. Cuando no tiene un valor, una columna no se almacena ni se reserva ese espacio.
01. INTRODUCCIÓN
Modelo de Almacenamiento de Datos
01. Introducción
ARQUITECTURA HBASE
HBase tiene una arquitectura de tipo maestro-esclavo (master-slave) y se puede desplegar en decenas y cientos de nodos.
01. Introducción
Arquitectura HBASE
HBase Master: Es el componente responsable de asignar las regiones en las que se encuentran distribuidos los datos en los nodos del clúster. Para ello, particiona el espacio de claves de las tablas y asigna las regiones resultantes a los servidores de regiones (Region Servers). También, mantiene la carga balanceada reasignando regiones a los nodos.
Region Server: Este componente ejecuta en todos los nodos workers del cluster y aloja las regiones. Tiene una caché de bloques que contiene los datos que se acceden con más frecuencia para optimizar las consultas (BlockCache). También gestiona una caché de escritura en memoria (MemStore) que aloja los datos que aún no han persistido en el disco.
Zookeeper: Apache Zookeeper es el coordinador del clúster de HBase. Contiene la configuración de los nodos y actúa también en caso de detectar un fallo mediante un demonio de monitorización. El HBase Master hace el seguimiento de los Region Servers con la información que mantiene Zookeeper.
01. INTRODUCCIÓN
cARACTERÍSTICAS DE HBASE
Tolerancia a Fallos
Distribuida y escalable
HBase se puede recuperar automáticamente en caso de fallos en regiones. Cuando el HBase Master detecta un fallo en un Region Server, reasigna esas regiones a un nuevo Region Server. Los datos no persistidos se recuperan directamente del HLog. Por otro lado, los fallos en nodos de HDFS son transparentes, ya que HDFS se encarga de replicarlos.
HBase está diseñada para funcionar en clústeres de servidores, lo que permite almacenar grandes volúmenes de datos distribuidos en varios nodos. Es altamente escalable, lo que significa que puede manejar fácilmente conjuntos de datos en petabytes al agregar más nodos al clúster
01. INTRODUCCIÓN
cARACTERÍSTICAS DE HBASE
Soporte para operaciones CRUD
Consistencia eventual
HBase admite operaciones básicas de creación, lectura, actualización y eliminación (CRUD) de datos. Además, proporciona capacidades avanzadas de consulta y filtrado, lo que permite realizar consultas complejas sobre conjuntos de datos distribuidos.
HBase ofrece una consistencia eventual, lo que significa que los cambios realizados en los datos pueden no ser inmediatamente visibles para todas las operaciones de lectura. Sin embargo, HBase garantiza que eventualmente todos los nodos tendrán una vista consistente de los datos.
06. METODOLOGÍA
01. INTRODUCCIÓN
DESVENTAJAS
vENTAJAS
No debemos usar HBase cuando no tenemos suficientes datos para compensar su complejidad y arquitectura distribuida. Es un sistema pensado para almacenar millones de filas. También, debemos tener en cuenta para dimensionar nuestra base de datos la velocidad a la que se generarán datos en el futuro o lo que crecerá nuestro dataset a almacenar.
HBase se integra perfectamente con aplicaciones en HDFS y MapReduce como fuente o como destino de datos. Mitiga los problemas de HDFS proporcionándonos actualizaciones sobre los datos, así como lecturas y escrituras aleatorias con buen rendimiento. También, nos proporciona una API en Java, una API Rest y con Thrift muy flexible.
02
Aplicaciones de hbase
02. APLICACIONES DE HBASE
Big Data y análisis en tiempo real
HBase es ideal para aplicaciones que requieren almacenar y procesar grandes volúmenes de datos en tiempo real. Se utiliza comúnmente en casos de uso de análisis de datos en tiempo real, como análisis de registros de aplicaciones web, análisis de datos de redes sociales y seguimiento de eventos.
02. APLICACIONES DE HBASE
Sistemas de recomendación
HBase se utiliza en sistemas de recomendación para almacenar perfiles de usuario y datos de comportamiento, lo que permite ofrecer recomendaciones personalizadas en función de las preferencias del usuario y el historial de interacciones.
02. APLICACIONES DE HBASE
Plataformas de juegos
HBase se utiliza en la industria de los juegos para almacenar datos de usuario, como perfiles de jugador, puntuaciones y estadísticas de juego. Esto permite construir características como tablas de clasificación en tiempo real y sistemas de logro.
02. APLICACIONES DE HBASE
Análisis de registros y monitoreo de sistemas
HBase se utiliza en aplicaciones de análisis de registros y monitoreo de sistemas para almacenar y analizar grandes volúmenes de datos de registro y métricas de sistemas distribuidos. Esto permite la detección temprana de problemas y la optimización del rendimiento del sistema.
02. APLICACIONES DE HBASE
Almacenamiento de datos de sensores IoT
Con la proliferación de dispositivos IoT (Internet de las cosas), HBase se utiliza para almacenar y analizar grandes volúmenes de datos generados por sensores y dispositivos conectados, permitiendo aplicaciones como monitoreo ambiental, gestión de activos y ciudades inteligentes.
03
Instalación HBASE
03. Instalación HBASE
Virtual box & Debian
- Descargar Virtual Box del siguiente enlace:
- Descargar Debian del siguiente enlace:
Maquina Virual
- Crear una nueva máquina virtual con 3 GB de memoria RAM y 32 GB de disco duro
- Instalar debían de manera gráfica en modo guiado y crear un usuario y superusuario con nombre: nodo1 y contraseña:12345
- Instalar (en modo superusuario: su) las herramientas necesarias para la máquina virtual con la siguiente línea apt install open-vm-tools.
03. Instalación HBASE
Configuración de la maquina virtual
- Actualizar todos los paquetes del sistema operativo debían utilizando el comando: sudo apt update
- Instalar el paquete neofetch con la línea sudo apt install neofetch escribir neofetch para ver las especificaciones de la máquina virtual.
- actualizar todo el software con las líneas sudo apt update y sudo apt upgrade.
- Sistema de archivos, ver el directorio en el que nos encontramos pwd y ver los ficheros que tenemos ls.
- Crear un archivo de texto nano test.txt , “Control x” para salir del archivo de texto, para abrir el archivo de texto generado escribir cat test.txt.
03. Instalación HBASE
Instalación y configuración HBASE
- Descargar el archivo binario (bin) https://hbase.apache.org/downloads.html versión más estable (stable release).
- Descomprimir el archivo tar.gz con el siguiente comando tar -xzf hbase-2.5.7-bin.tar.gz
- Ingresar a la carpeta bin utilizando la ruta: cd hbase-2.5.7/bin
- Inicializar hbase con el comando: ./start-hbase.sh
- Exportar las librerías de JAVA con el comando: export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
- Inicializar hbase con el comando: ./start-hbase.sh
- Por ultimo correr el Shell de hbase para verificar que el programa funciona con el comando: ./hbase Shell
04
PRACTICAS HBASE
04. PRACTICAS DE HBASE
cOMANDOS BASICOS DE HBASE
comandos básicos para crear y gestionar tablas, así como a insertar, leer y eliminar datos en HBase. Recuerda que HBase ofrece muchas más funcionalidades y comandos avanzados que puedes explorar en la documentación oficial.
04. Practicas HBASE
Crear una tabla con dos familias de columnas:
eJEMPLO DE Hbase
Insertar datos en la tabla de forma individual usaremos
Realizar una consulta de lectura
04. Practicas HBASE
Ejercicio 3
Ejercicio 1
Crea una tabla en HBase para realizar el seguimiento de contadores de eventos. Por ejemplo, puedes utilizarla para contar el número de visitas a una página web o el número de veces que se realiza una acción específica en una aplicación. Implementa la lógica para incrementar y leer los contadores de manera eficiente en HBase.
Crea una tabla en HBase para almacenar datos de ventas de productos. El esquema debe incluir column families para la información del producto (nombre, descripción, precio) y para la información de la transacción (fecha, cantidad vendida, total de ventas). Practica diseñando un esquema eficiente que permita realizar consultas rápidas y eficientes sobre las ventas de productos.
Ejercicio 4
Ejercicio 2
Prueba diferentes configuraciones y ajustes de HBase para optimizar el rendimiento de tus consultas y operaciones. Experimenta con el tamaño de bloque, la compresión de datos, la distribución de regiones y otros parámetros para mejorar el rendimiento de tu instancia de HBase y las consultas que realizas.
Utiliza filtros avanzados en HBase para realizar consultas complejas sobre datos de ventas. Por ejemplo, encuentra el producto más vendido en un rango de fechas específico o encuentra los productos que han superado cierta cantidad de ventas en un período de tiempo determinado.