Big Data Apache Architectures and Applications
Gestión y Almacenamiento
de Datos Masivos
Tema3 - HDFS y Hadoop
http://hadoop.apache.org/
@IsaacLera!
[email protected]!
“¡Desbordante!”
Hadoop
❖ Hadoop es una aplicación que proporciona un sistema de
almacenamiento escalable y confiable sobre HW commodity; Un
sistema distribuido de almacenamiento.!
❖ Facilita la computación paralela siendo una implementación de
MapReduce. !
❖ Hadoop desplaza la ejecución de la aplicación cerca de los datos. !
❖ La organización de la aplicación se basa en la utilización secuencia
de los datos!
❖ La ejecución paralela está garantizada aunque haya nodos que no
respondan.
Isaac Lera - Máster Universitario en Ingeniería Informática
2
Hadoop ecosystem
http://hadoop.apache.org/
Isaac Lera - Máster Universitario en Ingeniería Informática
3
❖ HDFS. Distributed, Reliable Storage. Sistema de ficheros. Es el mecanismo por el
cual un volumen grande de datos puede distribuirse sobre el cluster; una sola
escritura y múltiples lecturas.!
❖ MapReduce, es el principal framework de Hadoop; un modelo de programación
paralelo y distribuido. Separa el proceso entre una fase de mapping y otra de
reduce. !
❖ HBase. A column-oriented NoSQL database. Usado para rápidas lecturas/escrituras
de VG de datos!
❖ Yarn, un framework para la planificación de trabajos, y gestión de los recursos del
cluster.!
❖ Zookeper, es el servicio de coordinación, múltiples componentes de Hadoop
dependen de él.
Isaac Lera - Máster Universitario en Ingeniería Informática
4
❖ Pig, es una abstracción para reducir la complejidad de
programar en MapReduce. Incluye un entorno de ejecución y
un lenguaje de scripting (Pig Latin). Su compilador transforma
Pig Latin en un programa Map Reduce.!
❖ Hive, es un lenguaje de alto nivel para realizar consultas con
sintaxis SQL sobre Hadoop. Transforma la consulta a sintaxis
Hadoop. !
❖ Sqoop, es una herramienta de conectividad para el movimiento
de datos entre bases de datos relacionales y otros sistemas de
almacenamiento a Hadoop.
Isaac Lera - Máster Universitario en Ingeniería Informática
5
Otros componentes
❖ Oozie, es usado para la coordinación de la ejecución de diferentes trabajos
MapReduce. Su gestión puede basarse en tiempo y la presencia de datos. !
❖ Flume, es un servicio distribuido, confiable y altamente disponible para una
eficiente colección, agregación y movimiento de datos entre máquinas individuales
a Hadoop. (streaming)!
❖ Whirr, librerias para facilitar el movimiento entre Hadoop clusters e
infraestructuras como Amazon EC2, Rackspace,…!
❖ Mahout, librerías de algoritmos populares de clustering, regresión y estadísticos.!
❖ BigTop, un entorno de trabajo para el packaging y testeo de interoperabilidad con
subproyectos Hadoop!
❖ Ambari, un proyecto para simplificar la gestión de Hadoop: gestión,
monitorización,…
http://incubator.apache.org/projects/
Isaac Lera - Máster Universitario en Ingeniería Informática
6
Hadoop Distributions
❖ Compañías que integran diferentes componentes de
Hadoop para simplificar y ayudar en su uso. Algunas
crean nuevos proyectos Apache y otras, no.!
❖ Tanto Amazon y Microsoft tienen sus propias variantes
en Amazon AWS y Azure para su compatibilidad con
Amazon S3 y Windows Azure Storage. !
❖ Consideraciones: detalles técnicos, facilidad de
despliegue y mantenimiento, coste, e integración con el
sistema actual.
Isaac Lera - Máster Universitario en Ingeniería Informática
8
Hadoop Distributions
❖ Cloudera: Hadoop2, HDFS, YARN, Hbase, MapReduce,
Hive, Pig, Zookeeper, Oozie, Mahout, Hue, Impala,…
FreeEdition: 50 clusters; …!
http://www.cloudera.com/content/cloudera/en/products-and-services/cdh.html
!
BT, AMD, FICO, QualComm,…
❖ Hortonworks Data Platform: …, Hue, Ambari, Tex,
Stinger, Talend Open Studio for Big Data.
http://hortonworks.com/
ebay, Spotify, Bloomberg, Western Digital, Kayak, …
Isaac Lera - Máster Universitario en Ingeniería Informática
9
Hadoop Distributions
❖ MapR: Hadoop1, HDFS, Hbase, MapReduce, Hive,
Oozie, Mahout, Pig, Zookeeper, Hue,… Ha
implementado cada una de estas librerías en base al
código apache.!
https://www.mapr.com/
!
Cisco, Hp, Samsung, …
❖ IBM InfoSphere: …, Hue, Ambari, Tex, Stinger, Talend
Open Studio for Big Data.
http://hortonworks.com/
http://www-01.ibm.com/software/data/infosphere/
Isaac Lera - Máster Universitario en Ingeniería Informática
10
2010
http://hadoop.apache.org/
HDFS
The Hadoop
Distributed File
System
The Hadoop Distributed File System
❖ HDFS is Hadoop’s implementation of a distributed file system. It is designed to hold a
large amount of data, and provide access to this data to many clients distributed across a
network.!
❖ Run on top of a native filesystem!
❖ Based on Google Filesystem!
❖ Fault Tolerant: disk or machine crashes,…!
❖ Designed for storing very large files with streaming data access patterns, running on clusters
of commodity hardware.!
❖ Streaming data access: write-once, read-many-times;.!
❖ Not so good for:!
❖ low-latency reads (use: HBase); large amount of small files; single/multiples writers
and arbitrary file modifications; random reads
Isaac Lera - Máster Universitario en Ingeniería Informática
12
HDFS es gestionado por 3 Daemons
❖ Namenode gestiona el namespace/metadata del sistema de ficheros.
Mantiene en memoria el árbol de ficheros y los metadatos de todos los
ficheros. Persistentemente almacena una imagen física del namespace
y en el log de edición (fsimage); runs on 1 machine to n-machines.!
❖ en Hadoop v2.x: Alta Disponibilidad - Hay varios namenodes en
standby!
❖ Datanodes almacenan y consulta los bloques, e informan al namenode
la lista de bloques que almacenan; runs on many machines. !
❖ Seconday Namenode periódicamente lee los cambios del fs
registrados en el log y actualiza la imagen del fsimage
Isaac Lera - Máster Universitario en Ingeniería Informática
13
HDFS Daemons
http://www.edureka.co/blog/wp-content/uploads/2014/09/Hadoop2.2.png
HDFS Blocks
❖ Cada fichero es dividido en bloques/blocks!
❖ HDFS es un gestor de ficheros basado en bloques de tamaño:
64MB (default) o 128 MB.!
❖ Los gestiona el namenode y los almacena el datanode.!
❖ Un fichero puede ser más grande que un disco!
❖ Un bloque fijo simplifica la gestión de su metainformación.!
❖ Cada bloque es replicado en diferentes máquinas (“3 por
defecto”): access and fault-tolerance.
Isaac Lera - Máster Universitario en Ingeniería Informática
15
HDFS Blocks
❖ HDFS es un gestor de ficheros basado en bloques de
tamaño: 64Mb (default) o 128 Mb.!
❖ Se consigue reducir el tiempo de seek en comparación
con el tiempo de transferencia!
Tiempo Transferencia >> Tiempo Seek!
Isaac Lera - Máster Universitario en Ingeniería Informática
16
HDFS Blocks
¿Cuántos bloques son necesarios para almacenar 1PT?!
Con 64MB o 128MB
Isaac Lera - Máster Universitario en Ingeniería Informática
17
HDFS Daemons
B1
B2
B1
B1
B2
B2
registro.log (68MB) = B1 y B2 <-Metadatos: bloques, ubicación
NameNodes and DataNodes
• Namenode does NOT directly write or read data: One of the
reasons for HDFS’s Scalability !
• Client interacts with Namenode to update Namenode’s HDFS
namespace and retrieve block locations for writing and
reading!
• Client interacts directly with Datanode to read/write data
Isaac Lera - Máster Universitario en Ingeniería Informática
19
HDFS Client - Reads
Isaac Lera - Máster Universitario en Ingeniería Informática
20
HDFS Client - Write
Isaac Lera - Máster Universitario en Ingeniería Informática
21
HDFS Replication
❖ La gestión de replicar se encarga el namenode!
❖ Política: “rack awareness”!
❖ Dos niveles de localidad: on-machine, off-machine!
❖ El namenode se queda una copia y las otras dos
aleatoriamente van a otro rack!
❖ Política: “rack-aware”!
❖ Un script tiene mapeada la topología de la red!
❖ topology.script.file.name > hadoop-site.xml
Isaac Lera - Máster Universitario en Ingeniería Informática
22
HDFS Federación
❖ HDFS Federation (introducido en 2.x series), permite a
un cluster escalar el número de namenodes; cada
namenodes se encarga de gestionar una parte del árbol de
ficheros. !
❖ Estos espacios son independientes y los namenodes no se
comunican entre sí. !
/user Master0
/log Master1
Isaac Lera - Máster Universitario en Ingeniería Informática
23
Actividad #1
❖ Instalación de Hadoop 2.X
http://hadoop.apache.org/releases.html#Download
http://hadoop.apache.org/docs/r2.5.1/hadoop-project-dist/hadoop-common/
SingleCluster.html
http://localhost:50070
http://130.206.30.97:50070/
http://130.206.30.97:50070/jmx
Isaac Lera - Máster Universitario en Ingeniería Informática
24
Conf.I
sudo apt-get install ssh!
sudo apt-get install rsync!
sudo add-apt-repository ppa:webupd8team/java!
sudo apt-get update!
sudo apt-get install oracle-java7-installer (update-alternatives --config java)!
export JAVA_HOME=/usr/lib/jvm/java-7-oracle/ (/etc/environment)!
wget http://ftp.cixug.es/apache/hadoop/common/hadoop-2.5.2/hadoop-2.5.2.tar.gz!
sudo tar -xzf hadoop-2.5.2-src.tar.gz!
sudo mv hadoop-2.5.2-src hadoop!
sudo mkdir logs!
sudo chmod 755 logs!
sudo chown -R uib /usr/local/hadoop/ (uib = user)!
export HADOOP_HOME=/usr/local/hadoop!
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
Isaac Lera - Máster Universitario en Ingeniería Informática
25
Conf. II
etc/hadoop/hadoop-env.sh!
# The java implementation to use.!
export JAVA_HOME=/usr/lib/jvm/java-7-oracle/!
etc/hadoop/core-site.xml:!
etc/hadoop/hdfs-site.xml:!
!
#Acesso ssh sin introducir password!
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa!
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys!
Isaac Lera - Máster Universitario en Ingeniería Informática
26
Works?
$jps !
18939 NameNode!
19377 Jps!
19065 DataNode!
19272 SecondaryNameNode!
Isaac Lera - Máster Universitario en Ingeniería Informática
Comentarios de: Gestión y Almacenamiento de Datos Masivos - Tema3 - HDFS y Hadoop (0)
No hay comentarios