3. Hadoop

  • Published on
    09-Feb-2017

  • View
    32

  • Download
    3

Embed Size (px)

Transcript

  • 1

    Hadoop

    Cristian Gonzlez Garca v 1.2.2 Noviembre 2015

    mailto:gonzalezgarciacristian@hotmail.commailto:gonzalezgarciacristian@hotmail.com

  • ndice Introduccin

    Arquitectura

    Configuracin Bsica

    Standalone Mode

    Pseudo-Distributed Mode

    Ejemplo: Word Count

    Ejemplo: Hipotecas

    Errores Comunes

    Comandos y otros

    Bibliografa

    2

  • Introduccin

    3

  • Qu es? http://hadoop.apache.org/

    Proyecto Open Source Licencia Apache License 2.0

    Mantenido por Apache Foundation

    Framework Sistema de archivos distribuidos

    Volmenes grandes de datos

    Escalable, deteccin de fallos, alta disponibilidad

    Ejecucin de computacin paralela

    Desarrollado en Java

    Multiplataforma

    Yahoo! Es su mayor contribuyente

    4

    http://hadoop.apache.org/

  • Nacimiento Creado por Doug Cutting y Mike Cafarella

    Coincidieron en Yahoo!

    Nutch, Hadoop

    Se basaron en el artculo sobre MapReduce de Google [1]

    Doug Cutting

    El nombre proviene del elefante de juguete de su hijo

    Desarroll tambin Lucene (API)

    Ahora forma parte de Cloudera

    Se desarroll para Nutch, un motor de bsqueda basado en Lucene

    5

  • Artculo de Google

    Se inspir en el artculo [1] de Google sobre

    MapReduce y Google File System (GFS)

    Computacin distribuida

    6

    http://static.googleusercontent.com/media/research.google.com/es/archive/mapreduce-osdi04.pdf

  • Qu ofrece?

    Computacin distribuida

    Para cualquier tarea que pueda ejecutarse

    por lotes

    Anlisis de datos, procesamiento de imagen

    y video, estadsticas, bsquedas, paralelizar

    servicios, publicidad, almacenaje y

    bsqueda,

    Gran capacidad de cmputo

    7

  • Es utilizado por I Adobe

    Desarrollo de software Almacenamiento y procesamiento de datos desde 2008 30 nodos y prximamente 80 Hadoop, Hbase y trabajos MapReduce

    Alibaba Comercio electrnico Procesamiento de datos para su motor de bsqueda 15 nodos de 8 cores, 16GB Ram y 1.4TB (10^12)

    Ebay Subastas Optimizacin de bsquedas 532 nodos de 8 cores y 5.3PB (10^15)

    MapReduce, Pig, Hive y HBase

    Facebook Red Social Almacenar copias de los logs, anlisis y Machine Learning 1100 nodos con 8800 cores y 12PB (10^15) 300 nodos con 2400 cores y 3PB (10^15)

    8

  • Es utilizado por II Last.fm

    Red Social y Radio por Internet

    Clculo de grficas, informes, anlisis de datos,

    100 nodos (Dual quad-core Xeon L5520 @ 2.27GHz & L5630 @ 2.13GHz , 24GB RAM, 8TB(4x2TB)/node storage)

    LinkedIn Red Social

    Gente que puedas conocer, tabln, skills,

    ~4100 nodos ~800 Westmere-based HP SL 170x, with 2x4 cores, 24GB RAM, 6x2TB SATA ~1900 Westmere-based SuperMicro X8DTT-H, with 2x6 cores, 24GB RAM, 6x2TB SATA ~1400 Sandy Bridge-based SuperMicro with 2x6 cores, 32GB RAM, 6x2TB SATA

    Pig

    Twitter Red Social

    Almacenaje y procesamiento de Tweets, logs, etc

    Pig, Avro, Hive y Cassandra

    Yahoo! Empresa global

    Ms de 100.000 cpu. El mayor clster es de 4500 nodos

    Pig

    9

  • Es utilizado por III

    Amazon

    Spotify

    Universidades

    Telefnica

    Y decenas de empresas ms

    http://wiki.apache.org/hadoop/PoweredBy

    10

    http://wiki.apache.org/hadoop/PoweredBy

  • Arquitectura

    11

  • Componentes de un Clster I Componentes

    Nodo Maestro MapReduce: Procesamiento

    JobTracker

    TaskTracker

    HDFS: Almacenamiento NameNode

    DataNode

    Nodos esclavo MapReduce

    TaskTracker

    HDFS DataNode

    JRE 1.6+, JRE 1.7+ (A partir de Hadoop 2.7.1)

    SSH: Para conectar los nodos

    12

  • JobTracker Gestiona los trabajos y recursos del clster Funcionamiento

    1. Recibe el trabajo de la aplicacin cliente

    2. Se comunica con el NameNode para localizar los datos

    3. Localiza nodos TaskTracker con ranuras disponibles o cercanas a los datos

    4. Enva el trabajo a los nodos TaskTracker elegidos

    5. Monitoriza los nodos TaskTracker Si no recibe noticias de un nodo TaskTracker, lo dar

    por fallido y reprogramar ese trabajo para otro nodo TaskTracker

    6. Actualiza el estado cuando se complet el trabajo

    7. La aplicacin cliente puede preguntar al JobTracker por el estado del proceso

    13

  • TaskTracker Son los nodos que aceptan tareas del nodo

    JobTracker

    Sus operaciones son Map, Reduce y Shuffle

    Tienen configurados un nmero de slots que se corresponden con el nmero de trabajos que pueden aceptar Tienen preferencia los nodos con un DataNode que

    contenga datos de ese trabajo Si no, busca una slot en un nodo del mismo rack

    Para realizar el trabajo, crea un proceso separado. As evita que se caiga el TaskTracker si el proceso falla

    Cuando el proceso termina, notifica el JobTracker

    Enva seales cada poco minutos al JobTracker para que este sepa que el nodo sigue vivo Adjunta el nmero de slots libres

    14

  • NameNode Es el nodo principal del sistema de ficheros HDFS

    Guarda el rbol del directorio de ficheros y su localizacin

    No almacena datos de ficheros

    Recibe las peticiones de ficheros y responde con los nodos que los poseen

    Si se cae, se cae todo el sistema de ficheros

    Puede existir un nodo secundario (SecondaryNameNode) en otro nodo para evitar perder el sistema si se cae el principal

    Se recomienda que no comparta el nodo con ninguno de los otros 3: JobTracker, TaskTracker y DataNode

    15

  • DataNode Almacena datos en el sistema HDFS

    Se conectan con el NameNode

    Responde a las peticiones del NameNode

    Las aplicaciones cliente y los trabajos MapReducehablan directamente con los DataNode una vez estas recibieron la localizacin del NameNode

    Deberan de compartir nodo con los TaskTracker, para estar cerca de las operaciones MapReduce, por rendimiento

    Los DataNodes pueden hablar entre ellos para replicar datos No se necesitan discos RAID

    Configuracin ideal 1 disco fsico por CPU 1 TaskTracker por CPU. As usan el 100% de la CPU

    16

  • Componentes de un Clster II

    17

    Almacena los datos

    Gestin de datos

    Gestin de componentes

    Enva las tareas Map y reduce

    Obedece al JobTracker

    Ejecuta tareas Map y Reduce

  • Componentes de Hadoop HDFS MapReduce

    Hadoop Streaming

    Hive

    Hue

    Pig

    Sqoop

    Oozie

    HBase

    FlumeNG

    Mahout

    Fuse

    Zookeeper

    18

  • Hadoop Distributed File System

    (HDFS) http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-

    hdfs/HdfsUserGuide.html

    Sistema de ficheros distribuidos y escalable de Hadoop

    Escrito en Java

    Soporta comandos de Shell http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-

    common/FileSystemShell.html

    Altamente configurable

    Distribuye los ficheros por los diferentes nodos Permite trabajar con URL: Amazon con S3

    Tiene interfaz web en: http://namenode-ip:50070/

    Se compone de NameNode

    Gestiona el sistema de ficheros

    DataNode Almacena los datos y sirve los datos

    Soporta otros tipos de trabajo adems de MapReduce Aprendizaje automtico, procesamiento de imgenes, anlisis de

    marketing,

    19

    http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.htmlhttp://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/FileSystemShell.html

  • MapReduce I http://hadoop.apache.org/docs/r2.7.1/hadoop-mapreduce-client/hadoop-

    mapreduce-client-core/MapReduceTutorial.html

    Framework para facilitar la programacin de aplicaciones para procesar grandes volmenes de datos de manera paralela usando clsteres

    Dos fases Map: Trata los elementos ya divididos de la entrada y los transforman en un conjunto

    clave-valor Reduce: Ordena y junta los elementos clave-valor para crear el resultado

    Componentes Job

    Programa MapReduce que divide en trozos los datos

    JobTracker Gestiona los trabajos y recursos del clster

    Gestiona los TaskTracker y su situacin

    TaskTracker Toma las rdenes del JobTracker y realiza los trabajos MapReduce

    Se obtiene un fichero por cada reduce task configurado

    Soporta varios lenguajes de programacin Java, Python, Ruby, C++

    20

    http://hadoop.apache.org/docs/r2.7.1/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html

  • MapReduce II

    21

  • MapReduce III

    22

  • MapReduce IV

    Programacin I

    Se compone de 3 partes

    Map

    Reduce

    Main

    Se puede modificar tambin el Combiner

    Todo va dentro de una clase (En Java)

    http://hadoop.apache.org/docs/r2.7.1/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html

    23

    http://hadoop.apache.org/docs/r2.7.1/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html

  • MapReduce IV

    Programacin II

    24

    Clave-Valor generado por el Map

    Contexto de la aplicacin

    Valor recibido. Es una lnea

    Iteramos para obtener todas las palabras

    Indicamos que el Map va a ser

    Recibe un objeto genrico

  • MapReduce IV

    Programacin II

    La salida no se reordena

    25

    Indicamos la entrada del ReduceEs la misma que la salida del Map

    Valor recibido.

    Agrupa slo los valores por la misma Clave

    Al estar agrupados por Clave,sumamos para ve