Gestión y Almacenamiento de Datos Masivos

Big Data Apache Architectures and Applications Gestión y Almacenamiento
 de Datos Masivos Tema3 - HDFS y Hadoop http://hadoop.apache.org/ @IsaacLera

1 downloads 28 Views 2MB Size

Recommend Stories


Almacenamiento de Datos
Discos duros. Cilindros. Sectores. Cintas. {DVD}. Zip. {DITTO}

Unidades de almacenamiento de datos
Hardware. Disco duro. Discos removibles. Capacidades. Copias de seguridad. Sistema de archivos. Sistemas RAID

INDICE Medios de almacenamiento. - Soportes de almacenamiento. - Almacenamiento redundante y distribuido: RAID y Centros de Respaldo
INDICE Medios de almacenamiento. - Soportes de almacenamiento. - Almacenamiento redundante y distribuido: RAID y Centros de Respaldo. - Almacenamiento

Story Transcript

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 ! AMD, FICO, QualComm,… BT,



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 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

27

Basic Command Line $ hdfs dfs -[comando] [-parametro]! Ejemplo:! $ hdfs dfs -ls! $ hadoop fs -ls #alternativa!

Isaac Lera - Máster Universitario en Ingeniería Informática

28

$hdfs dfs -mkdir ! -ls ! -du ! -put (copia a/multiples src file from local to HDFS) ! -get (copia a/multiples src file from HDFS to local)! -getmerge (Concadena files de un directorio src en un fichero destino! -distcp (Copia ficheros/directorios recursivamente)! -cat ! -touchz (Actualiza el timestamp de un file, o lo crea)!

-help http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ CommandsManual.html Isaac Lera - Máster Universitario en Ingeniería Informática

29

Actividad ❖

Crear un directorio en HDFS!



Listar el directorio!



Crear un fichero en local!



Copiarlo dentro del directorio remoto!



Listar el directorio!



y copiarlo de nuevo a un directorio local http://localhost:50070

Isaac Lera - Máster Universitario en Ingeniería Informática

30

MapReduce execution #Listado de programas MapReduce de ejemplos! hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar! !

#Running an example:! hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar wordcount /files/data.txt /files/output! #/usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.5.2.jar! !

#See resultados! http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/ MapReduceTutorial.html Isaac Lera - Máster Universitario en Ingeniería Informática

31

Yarn Configuration http://hadoop.apache.org/docs/r2.5.1/hadoop-project-dist/hadoop-common/ SingleCluster.html#YARN_on_Single_Node!

! $jps 
 21212 Jps
 20987 NodeManager
 18939 NameNode
 20859 ResourceManager
 19065 DataNode
 19272 SecondaryNameNode http://localhost:8088/

Run a MapReduce job. Isaac Lera - Máster Universitario en Ingeniería Informática

32

HDFS Access ❖



Direct:! ❖

Communicate with HDFS directly through native client!



Java, C++ !

Proxy Server ! ❖

Access HDFS through a Proxy Server – middle man!



REST, Thrift (interface definition language), and Avro Servers (data serialization mechanism) Isaac Lera - Máster Universitario en Ingeniería Informática

33

Práctica #2 : Creating a Cluster (multi-node) ❖

Instalación de Hadoop 2.X http://hadoop.apache.org/releases.html#Download http://www.elcct.com/installing-hadoop-2-3-0-on-ubuntu-13-10/

http://localhost:50070

Isaac Lera - Máster Universitario en Ingeniería Informática

34

Ambari

http://ambari.apache.org/

It is aimed at making Hadoop management simpler by developing software for provisioning, managing, and monitoring Apache Hadoop clusters. Ambari provides an intuitive, easy-to-use Hadoop management web UI backed by its RESTful APIs.! Ambari enables System Administrators to:! ❖

Provision a Hadoop Cluster, Ambari provides a step-by-step wizard for installing Hadoop services across any number of hosts., Ambari handles configuration of Hadoop services for the cluster.,Manage a Hadoop Cluster!

Ambari provides central management for starting, stopping, and reconfiguring Hadoop services across the entire cluster.! ❖

Monitor a Hadoop Cluster,Ambari provides a dashboard for monitoring health and status of the Hadoop cluster.!



Ambari leverages Ganglia for metrics collection.,Ambari leverages Nagios for system alerting and will send emails when your attention is needed (e.g., a node goes down, remaining disk space is low, etc).!

Ambari enables Application Developers and System Integrators to:! ❖

Easily integrate Hadoop provisioning, management, and monitoring capabilities to their own applications with the Ambari REST APIs.

Isaac Lera - Máster Universitario en Ingeniería Informática

36

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.