You are on page 1of 20

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.

You might also like