HADOOP
HADOOP
•Es un framework implementado en Java que permite el
almacenamiento y procesamiento distribuido de grandes
conjuntos de datos estructurados, semi-estructurados y no
estructurados. Está diseñado para trabajar en clústers con
miles de máquinas y tiene una alta tolerancia a fallas.
HADOOP
HADOOP
¿QUÉ ES TRABAJAR DE MANERA
DISTRIBUIDA?
Significa trabajar sobre un clúster. Un clúster es una agrupación de servidores (computadoras)
conectadas sobre una red generalmente LAN.
Switch
Rack
Servidores Clúster
(o nodos del clúster)
COMPONENTES DE HADOOP
1. Almacenar archivos de manera
distribuida [HDFS]
Map
Reduce v2 SPARK
2. Procesar archivos de manera distribuida
Motor de Motor de
procesamiento
Map procesamiento
Reduce v1
HDFS YARN
[YARN + MAPREDUCE] Motor de
procesamiento
Almacena los datos en el clúster Gestiona los recursos del clúster
COMPONENTES
• Yarn es un componente que divide las funcionalidades de la gestión
de recursos y programación de trabajo en tareas (demonios) por
separado.
• ResourceManager
• Scheduler
• ApplicationsManager
• ApplicationMaster
YARN Architecture
https://blog.cloudera.com/apache-hadoop-yarn-concepts-and-applications/
COMPONENTES
• MapReduce es un paradigma de procesamiento de datos al dividirlo
en 2 fases:
• Map()
• Reduce()
MapReduce Architecture
https://www.educba.com/how-mapreduce-work/
UN CLÚSTER
HADOOP
Por lo general un clúster Hadoop está conformado por al menos un nodo llamado “master” y
tres o más nodos llamados “esclavos”. El nodo “master” es el que recibe peticiones de
almacenamiento o procesamiento desde algún cliente y delega el trabajo a los nodos “slave”.
Cliente Nodo master Nodos slave
El cliente envía quiere
procesar una tarea y la El “master” recibe la
envía al master tarea, selecciona los
“slaves” desocupados y
les ordena ejecutar la
tarea
Los “slaves” ejecutan las tareas, al
finalizar le informan al “master”
HDFS: ALMACENAMIENTO
En Hadoop el módulo que se encarga del almacenamiento y manipulación de archivos es
conocido como HDFS (Hadoop Distribuited File System). Es módulo se encarga de recibir desde
un cliente peticiones de lectura y escritura de archivos y almacenar los archivos en los nodos
“slave”.
Cliente Nodo master Nodos slave
El cliente envía el archivo
que quiere guardar
El “master” busca tres nodos
con espacio disponible en el
disco duro, y guarda el archivo
en cada uno de ellos. El master
almacena metadata Los “slaves” almacenan las
copias de los archivos
YARN + MAPREDUCE: PROCESAMIENTO
En Hadoop los módulos que se encargan del procesamiento de archivos son YARN (Yet Another
Resource Negotiator) y MapReduce. El módulo de YARN verifica los nodos “slave” que están
libres y los selecciona para el procesamiento. El módulo MapReduce ejecuta el procesamiento.
Cliente Nodo master Nodos slave
El cliente envía el
programa que quiere
El “master” por medio de
ejecutar
YARN busca qué nodos
no están ejecutando
nada y separa recursos
(memoria RAM y CPUs).
Los “slave” ejecutan el programa en
paralelo por medio de MapReduce
VENTAJAS DE HADOOP
1. Abstrae al desarrollador de la distribución de la carga de trabajo, es decir, el desarrollador
sólo se preocupa en construir su programa y decirle al clúster que lo ejecute con cierta
cantidad de RAM y CPUs, el clúster se encargará de elegir a los servidores que en ese
momento estén disponibles
2. Funciona sobre hardware commodity, es decir no necesita de un servidor especial tipo
IBM
que puede llegar a costar mucho dinero.
3. Permite la escalabilidad lineal, es decir si un proceso se ejecuta en 10 minutos con 5GB
de
RAM y 3 CPUs, entonces con 10GB de RAM y 6 CPUS deberá ejecutarse en 5 minutos.
4. Permite aumentar la potencia del clúster fácilmente, agregando más nodos al clúster.
ECOSISTEMA DE
HADOOP
Hadoop Ecosystem Diagram
https://www.geeksforgeeks.org/hadoop-ecosystem/
ECOSISTEMA BÁSICO DE HADOOP
HIVE
Hive es una base de datos de almacenamiento de
datos distribuidos de código abierto que opera en el
sistema de archivos distribuidos de Hadoop. Hive se
creó para consultar y analizar big data. Los datos se
almacenan en forma de tablas (al igual que
RDBMS). Las operaciones de datos se pueden realizar
utilizando una interfaz SQL llamada HiveQL. Hive
incorpora la capacidad de SQL además de Hadoop, lo
que la convierte en una base de datos escalable
horizontalmente y una excelente opción para entornos
DWH.
FUNCIONES Y CAPACIDADES DE
HIVE
Hive viene con características y capacidades de nivel
empresarial que pueden ayudar a las organizaciones a
crear soluciones de almacenamiento de datos eficientes y
de alto nivel.
Algunas de estas características incluyen:
•Hive usa Hadoop como su motor de almacenamiento y
solo se ejecuta en HDFS.
•Está especialmente diseñado para operaciones de
almacenamiento de datos y no es una opción para OLTP u
OLAP.
•HiveQL es un motor SQL que ayuda a crear consultas
SQL complejas para operaciones de almacenamiento de
datos. Hive se puede integrar con otras bases de datos
distribuidas como HBase y con bases de datos NoSQL
como Cassandra
SI PROGRAMARAMOS DIRECTAMENTE CON
MAPREDUCE
Programación avanzada
en Java con todo lo que
ello implique:
• Perfiles senior Java
• Mantenibilidad
compleja
• Compilación
de
programas
• Nullpointerexc
eption…
LO MISMO EN HIVE
Conclusiones
• Hadoop resuelve los problemas de procesado de datos con técnicas de
MapReduce, capaces de fraccionar el procesado de datos en grupos y
distribuirlo en un clúster de máquinas gracias a su tecnología HDFS.
• Los clústeres pueden crecer horizontalmente, con lo cual, disponer de
miles de microprocesadores para realizar tareas de procesado de datos
en paralelo es una fortaleza frente a soluciones tradicionales.
• El ecosistema de Apache Hadoop permite la recopilación de grandes
cantidades de datos y búsqueda de tendencias en tiempo real.