Vous êtes sur la page 1sur 58

BIG DATA: TECNOLOGÍAS

Mg. Evelyn Ayala


eayala@uigv.edu.pe
Objetivo de la Sesión

• Comprende las tecnologías Big


Data existentes.
Presencia del Big Data

Antecedentes
Agenda
Hadoop

Hadoop: Tecnología
HDFS

MapReduce
Agenda
Anatomía de un Cluster.

Ecosistema HADOOP
PRESENCIA DEL
BIG DATA
Tendencias del Big Data

https://trends.google.es/
Tendencias del Big Data

https://trends.google.es/
ANTECEDENTES
Motores de Búsqueda en los 90’s

1996 1996

1997
Motores de Búsqueda en los 90’s
1998

2013
Antecedentes
Creado por Doug Cutting y
Mike Carafella en el 2005 para
soportar la distribución del
motor de búsqueda del
Proyecto Nutch.
Antecedentes

El proyecto fue fundado


por Yahoo.

Yahoo entregó el proyecto


a Apache Software
Foundation.
HADOOP
Definición
Es un framework desarrollado en Java y de licencia libre,
permite el desarrollo de grandes cantidades de datos.

Es una arquitectura flexible y de alta disponibilidad para el


cómputo a gran escala y el procesamiento de datos en una
red de hardware básico.
Definición

Introducido en 2006, y desarrollado en Java cuyo objetivo


es ofrecer un entorno de trabajo acorde con las
necesidades del Big Data (las 4 "V"). Hadoop, por
tanto, está diseñado para trabajar con volúmenes de datos
masivos (Volumen), estructurados o no (Variedad), y
procesarlos de forma segura y eficiente
(Veracidad/Velocidad) , tanto en costes como en tiempo.
Definición

Google File System MapReduce


Octubre, 2003 Diciembre, 2004
Modelo de Almacenamiento Modelo de Cómputo Distribuido
Distribuido.

https://ai.google/research/pubs/pub51 https://ai.google/research/pubs/pub62
Definición
Diseñado para responder la pregunta:

¿Cómo procesar grandes cantidades


de datos con un costo y tiempo
razonable?
Definición
La clave estaba en distribuir, tanto el
almacenamiento de la información, como
su procesamiento, entre muchos equipos
trabajando de forma coordinada
en “clusters”, con uno o varios nodos
maestros encargados de gestionar, por
una parte el sistema de ficheros
distribuido donde los datos se almacenan
en diferentes bloques redundados; y por
otra, la coordinación y ejecución de los
distintos jobs o tareas entre los miembros
del cluster.
Beneficios
• Fiabilidad. Permite la distribución de datos y tareas entre distintos
nodos. Ante la caída de un nodo, la tarea se reasigna
automáticamente a otro y los datos no se pierden porque están
replicados en otros nodos del cluster.
• Escalado horizontal: Un programa se puede probar en una
máquina, y después escalarse a 1000, o más máquinas.
• APIS muy sencillas, tanto para procesamiento como para acceso a
los datos.
• Potencia, al dividir el procesamiento entre distintas máquinas, se
pueden procesar enormes volúmenes de datos en tiempos
eficientes
¿Qué empresas la usan?
HADOOP:
TECNOLOGÍA
Hadoop nace para enfrentar retos de disponibilidad, performance, costos
así como gestión de datos y se conforma de algunos componentes
importantes:

• Hadoop Common: Las utilidades comunes que soportan los otros


módulos de Hadoop, integración, scheduler, shell, codigo nativo, jars,
Python.
• Hadoop Distributed File System (HDFS): Un sistema de archivos
distribuido que proporciona acceso de alto rendimiento para los datos
de aplicación.
• Hadoop YARN: Un marco para la planificación de tareas y gestión de
recursos de clúster.
• Hadoop MapReduce: Un sistema basado en hilos para el
procesamiento paralelo de grandes conjuntos de datos.
HADOOP DISTRIBUTED
FILE SYSTEM
HDFS
Hadoop Distributed File System
• HDFS Es un sistema de archivos escrito en java basado
en GFS de Google.

• Es un sistema de archivos distribuidos, escalable y


portátil escrito en java y creado para trabajar con
archivos de gran tamaño.

• Provee redundante almacenamiento para grandes


cantidades de datos.
HDFS: Característica

Una de sus principales características es un


tamaño de bloque muy superior al habitual para
no perder tiempo en los accesos de lectura.
HDFS: Procedimiento
• HDFS “fracciona” los archivos en bloques.
HDFS: Procedimiento
• Diferentes bloques del
mismo archivo serán
almacenados en
diferentes máquinas
(Data Nodes que
conforman el cluster).
HDFS: Procedimiento

• Los bloques se replican en múltiples máquinas.

* La replicación predeterminada es 3
veces.
HDFS: Procedimiento

• El NameNode realiza un seguimiento de qué bloques


forman un archivo y dónde se almacenan.
• Cada bloque se replica varias veces para evitar pérdidas
de información si alguno de los nodos falla.
• Cuando un cliente quiere recuperar datos. Se comunica
con NameNode para determinar qué bloques forman un
archivo y en qué nodos de datos se almacenan esos
bloques, para leer los datos.
Hadoop Distributed File System

• El servidor HDFS en un cluster se llama Name Node y


almacena los metadatos, como el árbol de directorios
del sistema de ficheros, y sabe en qué nodo del cluster
está cada bloque de información (Mapa de Bloques).
Por su gran importancia, este nodo se suele replicar en
un Secundary Name Node.
Apache Hadoop: Wiki

Facebook tiene dos clusters principales:

• Un cluster de 1100 máquinas, con 8800 nodos y cerca de


12 PB de almacenamiento.
• Un segundo cluster de 300 máquinas con 2400 nodos y
cerca de 3PB de almacenamiento.

Fuente:
https://wiki.apache.org/hadoop/PoweredBy
Introducción a HDFS
Video de
https://www.youtube.com/watch?v
Apoyo
=tOB3V2iklbE
MAPREDUCE
MapReduce: Visión General

• Un método para distribuir computación a través de


múltiples nodos (computación paralela).

• Cada nodo procesa los datos que se almacenan en


ese nodo.
Descripción

Es el componente de procesamiento de Hadoop.


Consiste en un framework de programación (librerías y
entorno de ejecución) que trabaja sobre HDFS y se
basa en el uso de dos tipos de fases:
- MAP
- REDUCE
Proceso

Map – “Divide y vencerás”: divide la tarea de entrada en


subtareas y las ejecuta entre distintos nodos.
Reduce – “Combina y reduce la cardinalidad”: la función
“Reduce” recoge las respuestas a las sub-tareas en cada
subnodo y las combina y agrupa para obtener la respuesta
final.
Descripción

Shuffle Reduce Output


Input (Entrada) Split (División) Map (Mapeo)
(Barajar) (Reducir) (Salida)
Proceso
Cada máquina de un cluster Hadoop tiene un servidor
MapReduce que se llama TaskTracker. A su vez, hay un
gestor de Jobs por cada cluster, el JobTracker, que se
encarga de dividir cada proceso a realizar en subprocesos,
y distribuir la computación de estos subprocesos entre
distintas máquinas del cluster, enviando a los TaskTrackers
de cada una de ellas el job que le corresponde realizar.
Proceso
El Job Tracker también es responsable de comprobar que
no haya desaparecido algún Task Tracker por fallo de
hardware o sofware. En caso de detectar que un Task
Tracker ha desaparecido, asigna automáticamente esa
tarea a otro Task Tracker del cluster.
Procesamiento con MapReduce
Video de
https://www.youtube.com/watch?v
Apoyo
=kYsaCCmuYIg
ANATOMÍA DE UN
CLUSTER
Visión General
• NameNode
• Almacena el metadata para el HDFS.
• Secondary NameNode
• Realiza funciones de mantenimiento para el NameNode.
• DataNode
• Almacena los bloques de datos del HDFS.
• JobTracker
• Administra los trabajos MapReduce.
• TaskTracker
• Monitorea las tareas individuales Map y Reduce.
El NameNode
• Almacena la información del sistema de archivos HDFS en una
fsimage

• Las actualizaciones del sistema de archivos (agregar/eliminar


bloques) no cambian el archive fsimage.
• Estos cambios se escriben en un archivo log.

• Al iniciar el NameNode carga el archive fsimage y luego aplica los


cambios en el archive log.
JobTracker y TaskTracker

• JobTracker
• Determina el plan de ejecución para los trabajos.
• Asigna tareas individuales.

• TaskTracker
• Realiza el seguimiento del rendimiento individual de un Map o Reduce.
ECOSISTEMA
HADOOP
Por qué existen estas herramientas?

• MapReduce es muy poderoso, pero puede ser difícil de dominar.

• Estas herramientas permiten a los programadores que están


familiarizados con otros estilos de programación aprovechar el
poder de MapReduce.
Other Tools
• Hive
• Procesamiento Hadoop con SQL.
• Pig
• Procesamiento Hadoop with scripting.
• Cascading
• Modelo de Procesamiento Pipe y Filter.
• HBase
• Modelo de BD construido sobre Hadoop.
• Flume
• Diseñado para el movimiento de datos a gran escala.

Vous aimerez peut-être aussi