Documentos de Académico
Documentos de Profesional
Documentos de Cultura
it happen
Hadoop
ALMACENAMIENTO Y PROCESAMIENTO
eae.es
Para modificar título del PPT, cambiar pie de página
Índice
01. Introducción
02. Instalación y configuración hadoop
03. HDFS
04. MAP-REDUCE
05. Yarn
06. Ecosistema Hadoop
2
1. Introducción
• Fallos de Hardware
• Replicación HDFS
¿QUÉ ES HADOOP?
• Apache Hadoop es una infraestructura de software
bajo licencia libre
• Almacenamiento de datos en clúster HDFS
• Procesamiento paralelo de tipo maestro-esclavo
MapReduce.
• Hadoop permite
• Procesar y analizar un enorme bloque de información
en paralelo al mismo tiempo.
• Tolerancia a fallos.
1. Introducción
CARACTERÍSTICAS
• Tolerante a fallos:
• Replicacion de datos, minimiza los fallos
• Robusto:
• Nodos y procesos maestros que se encargan de gestionar las
cargas de trabajo
• Escalable:
• Su diseño permite pasar de pocos nodos a miles de nodos de
forma ágil y sin perder calidad.
1. Introducción
CARACTERÍSTICAS
• Disponible:
• Redundancia para asegurar una alta disponibilidad
• Distribuido y de alto rendimiento:
• La capacidad de cálculo y almacenamiento conjunta de todos sus
nodos puede llegar a ser muy alta.
• Simple
• Permite escribir rápidamente código, que funcione eficientemente de
forma distribuida
• Distribución de código:
• Hadoop mueve el código hacia los datos y no al revés
1. Introducción
Componentes Hadoop
ALMACENAMIENTO PROCESAMIENTO
2. Instalación
INSTALACIÓN DE HADOOP
Instalación de Hadoop
Ventajas:
• Aumenta la confiabilidad al sistema.
• Crecimiento de la empresa es soportable.
• Tomas de decisiones locales.
• No está centralizada los datos de la empresa. Si la lógica de negocio
en tener datos locales en las tomas de decisiones es factible, si no,
irse a un sistema centralizado.
• Uso de ancho de banda local. Permite tener interfaz muy amigable
o vistosa. Solo se consume el ancho de la banda de una red local.
• Velocidad de respuesta rápida, si los datos están en la red local.
3. HDFS
Desventajas:
• Soporte local de la tecnología.
• Una mala distribución de los datos, es peor que un sistema centralizado, uso
en exceso de la red.
• Costo y complejidad del SW.
• Costo en llevar los cambios del SW a cada lugar..
• Integridad de los datos es más difícil de controlar.
• Uso de otra área de la tecnología, SW de seguridad, protección y de redes.
3. HDFS
3.2 HDFS
• BLOQUES
• Ficheros particionados
3.3.1 BLOQUES
Tiempo Búsqueda ~= 10 ms
Tasa de transferencia = 100 MB/s
Si queremos búsqueda 1% del tiempo de transferencia
bloque ~= de 100 MB.
Ventajas
• Un archivo puede ser más grande que cualquier disco
en la red.
A:
LECTURA/ESCRITURA
B: ACCESO
METADATOS
C: ALMACEN
METAINFO
D: ACCESO A DATOS
E: HEARTBEATS/INFO
• Principales tipos de nodo en Hadoop
• Un cluster Hadoop se compone como mínimo de
un nodo Maestro y un nodo Esclavo.
Demonio NameNode
• Responsables de gestionar el “espacio de nombres” del sistema
de archivos y, por tanto, son los que indican a los procesos
dónde se encuentran los datos.
• El NameNode es el encargado de almacenar los metadatos del
cluster Hadoop:
Información de la localización de los ficheros del HDFS
Información de permisos y usuarios
Nombre de los bloques
Localización de los bloques
• Los NameNode no se encargan de almacenar los datos. De esto
se encargan los DataNodes, que veremos más adelante.
Demonio NameNode
• Los metadatos son almacenados en el disco y son cargados en memoria
cuando el NameNode arranca por primera vez:
• Se almacenan en el fichero fsimage (los nombres del bloque no
son almacenados en el fichero)
• Los cambios realizados en los metadatos son almacenados en
memoria y en el fichero edits.
• Almacena toda la metainformación del sistema de archivos en el clúster,
esto significa que HDFS implementa una arquitectura maestro/
esclavo.
• La existencia de un único maestro en un clúster simplifica en gran
medida la arquitectura del sistema, pero tiene como debilidad que es un
único punto de fallo (Single Point of Failure)
Demonio NameNode
• Requisitos de hardware para los DataNodes no tienen por qué ser muy
elevados, ya que la potencia del sistema es consecuencia directa del
gran número de DataNodes, y no de su potencia individual.
• Tampoco es necesario que sean iguales entre ellos en cuanto a
hardware o sistema operativo.
• Un DataNode almacenará varias porciones distintas de datos, y
además el sistema de archivos de Hadoop exige que estos segmentos se
encuentren por triplicado (o según un parámetro de configuración) y
en distintos DataNodes.
• Esto permite que los DataNodes se respalden unos a otros.
Demonio Secondary NameNode (master)
• El Secondary NameNode no es un NameNode en standby.
• El Secondary NameNode se encarga de operaciones de mantenimiento:
• El NameNode escribe las modificaciones de los metadatos en el fichero
edits.
• El Secondary NameNode periódicamente obtiene el fichero edits del
NameNode y lo une con el fichero fsimage y envía el nuevo snapshot al
NameNode.
• El Secondary NameNode se debe poner en otro nodo maestro en un cluster
de un tamaño considerable.
Cada hora o cada 1.000.000 de transacciones o cada 128 MBs
alamacenados (por defecto) el Secondary NameNode realiza el
checkpoint de los metadatos:
1. Llama al NameNode para obtener el fichero edits
2. Obtiene los ficheros fsimage y edits del NameNode
3. Carga el fichero fsimage en memory y agrega los cambios del fichero edits
4. Crea el nuevo fichero consolidado de fsimage
5. Envía el nuevo fichero consolidado al NameNode
6. El NameNode reemplaza el antiguo fsimage por el nuevo
HDFS: Data Locality
• Data Locality
• Modo Local, cuando el dato está en el propio nodo que tiene que
procesarlos
HDFS: Data Locality
• OnRack, Cuando el dato está en el mismo rack que el nodo que lo tiene
que procesar
HDFS: Data Locality
• Off-Rack, Cuando el dato está en un rack distinto del nodo que lo tiene
que procesar
HDFS: Replicación de datos
Comandos básicos
• ls
• cp
• mv
• copyFromLocal
• copyToLocal
• mkdir
• lsr <path>
Se comporta como -ls, pero muestra las entradas de forma recursiva
todos los subdirectorios de la ruta.
• du <path>
Muestra uso de disco, en bytes, de todos los archivos que coincidirá
con la ruta
• dus <path>
Como -du, pero imprime un resumen del uso del disco de todos los
archivos/directorios de la ruta.
• mv <src><dest>
Mueve el archivo o directorio indicado por src a dest, en HDFS.
• cp <src> <dest>
Copia el archivo o directorio identificado por src a dest, en HDFS.
• rm <path>
Elimina el archivo o directorio vacío identificado con la ruta de acceso.
• put <localSrc> <dest>
Copia el archivo o directorio del sistema de archivos local identificado
por localSrc al dest en el SLE.
• copyFromLocal <localSrc> <dest>
Idéntico a -put
• moveFromLocal <localSrc> <dest>
Copia el archivo o directorio del sistema de archivos local identificado
por localSrc al dest en HDFS, y, a continuación, elimina la copia local en el
éxito.
• get [-crc] <src> <localDest>
Copia el archivo o directorio en HDFS identificados por src a la ruta del
sistema de archivos local identificado por localDest.
• getmerge <src> <localDest>
Recupera todos los archivos que coinciden con la ruta src en HDFS, y
copia en un único archivo, se funden en el sistema de archivos local
identificado por localDest.
• cat <filen-ame>
Muestra el contenido del archivo en stdout.
• copyToLocal <src> <localDest>
Idéntico a -get
• moveToLocal <src> <localDest>
Funciona de forma similar -get, pero elimina la HDFS copia en caso de
éxito.
• mkdir <path>
Crea los directorios en la ruta principal que faltan (p. ej., mkdir -p en
Linux).
• setrep [-R] [-w] rep <path>
Establece el objetivo de replicación de archivos identificados en la ruta
de acceso a rep. (La replicación real factor se moverá hacia la meta en el
tiempo)
• touchz <path>
Crea un archivo en la ruta que contiene la hora actual como una marca
de tiempo. No se si ya existe un archivo en la ruta, a menos que el archivo ya
está tamaño 0.
• MapReduce V1
• MapReduce V2 (YARN)
Procesamiento en Hadoop: Mapreduce
• Encargado tanto del proceso de los datos como gestión del cluster.
PROBLEMA!!!
Procesamiento en Hadoop: Mapreduce
Para realizar esta tarea, estos nodos realizan las siguientes funciones:
• Buscar y catalogar los nodos en función de su utilidad para realizar una
determinada tarea. Los nodos candidatos para ejecutar un trabajo serán
aquellos que estén más cercanos a los datos que consumir y con menor
carga de trabajo en ese momento.
• Enviar los trabajos MapReduce a los nodos seleccionados.
• Nodos JobTracker
• Que este nodo deje de funcionar implicaría que todo el clúster dejara de
funcionar. Por tanto, también será recomendable elegir un hardware de
alta disponibilidad para este nodo.
Nodos TaskTracker
• Los nodos TaskTracker tienen como objetivo ejecutar tareas MapReduce.
Proceso Map-Reduce
Procesamiento en Hadoop: Mapreduce
Proceso Map-Reduce
Procesamiento en Hadoop: Mapreduce
• Limitaciones de MapReduce v1
Procesamiento en Hadoop:
YARN
eae.es
YARN y MapReduce
• YARN expone una serie de APIs que son aprovechadas por frameworks de cómputo
como Mapreduce, Spark … etc (todos ellos pueden ejecutar sobre YARN).
• Tiene procesos distintos para el proceso de datos y para la gestión del cluster
YARN y MapReduce
YARN y MapReduce
Arquitectura YARN
• En esta arquitectura, existen cuatro elementos
• Dos de infraestructura del cluster,
+ Resource Manager: Gestiona asignación de recursos en un clúster completo
de YARN
+ Container
Resource Manager
• (Un slot o ranura es una “partición” del hardware de cada nodo “Worker”,
una porción de memoria y un tiempo de cpu, en la que dichos nodos se
dividen y que van siendo asignadas a las tareas por el Resource Manager)
Container
• Cada uno de los slots, de los nodos Worker que ejecutan parte de la tarea
Map-Reduce que se lanza en el cluster.
2.
Arquitectura
2.
Arquitectura
2.
Arquitectura
2.
Arquitectura
2.
Arquitectura
2.
Arquitectura
2.
Arquitectura
• Ejemplo de la vida real que muestra la potencia de Hadoop 2.0 sobre
Hadoop 1.0.
o Yahoo fue capaz de ejecutar casi el doble de jobs al día con YARN
que con Hadoop 1.0.
o También experimentaron un aumento considerable en la
utilización de la CPU.
o Yahoo incluso llegó a afirmar que la actualización a YARN
equivalía a añadir 1000 máquinas a su cluster de 2500 máquinas
YARN. Planificación de Recursos
• Asignación de recursos del cluster a aplicaciones que se están ejecutando en
el cluster.
• Los procesadores y la RAM son dos recursos críticos para la ejecución de cada
container.
eae.es
Procesamiento en Hadoop: Hadoop Streaming
Ecosistema Hadoop
FIN UNIDAD
eae.es