SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
Introducción a Hadoop
Tomás Fernández Pena
Máster en Computación de Altas Prestaciones
Universidade de Santiago de Compostela
Computación en Sistemas Distribuidos
Material bajo licencia Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
citius.usc.es
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Índice
1 Introducción a Hadoop
2 Instalación
3 Introducción a HDFS
4 MapReduce en Hadoop v1
5 MapReduce en YARN
6 Ejemplo MapReduce: WordCount
Introducción a Hadoop, CSD
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Índice
1 Introducción a Hadoop
2 Instalación
3 Introducción a HDFS
4 MapReduce en Hadoop v1
5 MapReduce en YARN
6 Ejemplo MapReduce: WordCount
Introducción a Hadoop, CSD
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Hadoop
Implementación open-source de MapReduce
Procesamiento de enormes cantidades de datos en grandes clusters
de hardware barato (commodity clusters)
Escala: petabytes de datos en miles de nodos
Introducción a Hadoop, CSD 1/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Características de Hadoop
Incluye
Almacenamiento: HDFS
Procesamiento: MapReduce (Hadoop v1), YARN (Hadoop v2)
Ventajas
Bajo coste: clusters baratos o cloud
Facilidad de uso
Tolerancia a fallos
Introducción a Hadoop, CSD 2/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Características de Hadoop
Incluye
Almacenamiento: HDFS
Procesamiento: MapReduce (Hadoop v1), YARN (Hadoop v2)
Ventajas
Bajo coste: clusters baratos o cloud
Facilidad de uso
Tolerancia a fallos
Introducción a Hadoop, CSD 2/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Índice
1 Introducción a Hadoop
2 Instalación
3 Introducción a HDFS
4 MapReduce en Hadoop v1
5 MapReduce en YARN
6 Ejemplo MapReduce: WordCount
Introducción a Hadoop, CSD
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Instalación
Instalación relativamente simple: aplicación Java
Paquete fuente: hadoop.apache.org/releases.html
Sistemas preconfigurados proporcionados por empresas como
Cloudera (www.cloudera.com), MapR (www.mapr.com) o
Hortonworks (hortonworks.com), o más específicas como la
distribución de Intel o IBM InfoSphere BigInsight
Modos de funcionamiento:
Standalone: todo en un nodo, para pruebas
Pseudodistribuido: funciona como una instalación completa, pero en
un solo nodo
Totalmente distribuido
Introducción a Hadoop, CSD 3/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Instalación
Instalación relativamente simple: aplicación Java
Paquete fuente: hadoop.apache.org/releases.html
Sistemas preconfigurados proporcionados por empresas como
Cloudera (www.cloudera.com), MapR (www.mapr.com) o
Hortonworks (hortonworks.com), o más específicas como la
distribución de Intel o IBM InfoSphere BigInsight
Modos de funcionamiento:
Standalone: todo en un nodo, para pruebas
Pseudodistribuido: funciona como una instalación completa, pero en
un solo nodo
Totalmente distribuido
Introducción a Hadoop, CSD 3/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Arquitectura Hadoop v1
Introducción a Hadoop, CSD 4/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Procesos
Cuatro procesos (dæmons) principales:
En el master: namenode y jobtracker
En los workers: datanode y tasktracker
namenode y datanodes: sistema HDFS
jobtracker y tasktrackers: trabajos MapReduce
Introducción a Hadoop, CSD 5/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Hadoop v2
Este esquema se ha modificado en Hadoop 2.0 con YARN (Yet Another
Resource Negociator) (HSFS se mantiene)
separa las dos funcionalidades del Jobtracker (gestión de recursos y
job-scheduling/monitorización) en demonios separados
Resource manager (RM): planificador general
Node managers (NM): monitorización, uno por nodo
Application masters (AM): gestión de aplicaciones, uno por aplicación
permite que diferentes tipos de aplicaciones (no solo MapReduce)
se ejecuten en el cluster
Introducción a Hadoop, CSD 6/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Arquitectura Hadoop v2
Introducción a Hadoop, CSD 7/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Modelo Hadoop v1
HDFS
Almacenamiento distribuido
MapReduce
Procesamiento distribuidoHBase
Basededatos
no-relacional
Pig
Scripts
Hive
Query
Otrosproyectos
Oozie,HCatalog,Sqoop,
ZooKeeper,Mahout,...
Introducción a Hadoop, CSD 8/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Modelo Hadoop v2
HDFS
Almacenamiento distribuido
MapReduce
Procesamiento distribuidoHBase
Basededatos
no-relacional
Pig
Scripts
Hive
Query
Otrosproyectos
Oozie,HCatalog,Sqoop,
ZooKeeper,Mahout,...
YARN
Planificador y negociador de recursos
Otrosproyectos
YARN
Introducción a Hadoop, CSD 9/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
El libro
Introducción a Hadoop, CSD 10/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Índice
1 Introducción a Hadoop
2 Instalación
3 Introducción a HDFS
4 MapReduce en Hadoop v1
5 MapReduce en YARN
6 Ejemplo MapReduce: WordCount
Introducción a Hadoop, CSD
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
HDFS: Hadoop Distributed File System
Hadoop puede acceder a diferentes tipos de filesystems (local, HDFS,
KFS, S3,. . . )
Se recomienda HDFS: Hadoop Distributed File System
HDFS: Ventajas
Diseñado para almacenar ficheros muy grandes en commodity
hardware
Elevado ancho de banda
Fiabilidad mediante replicacion
HDFS: Inconvenientes
Elevada latencia
Poco eficiente con muchos ficheros pequeños
Modificaciones siempre al final de los ficheros
No permite múltiples escritores (modelo single-writer,
multiple-readers
Introducción a Hadoop, CSD 11/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
HDFS: Hadoop Distributed File System
Hadoop puede acceder a diferentes tipos de filesystems (local, HDFS,
KFS, S3,. . . )
Se recomienda HDFS: Hadoop Distributed File System
HDFS: Ventajas
Diseñado para almacenar ficheros muy grandes en commodity
hardware
Elevado ancho de banda
Fiabilidad mediante replicacion
HDFS: Inconvenientes
Elevada latencia
Poco eficiente con muchos ficheros pequeños
Modificaciones siempre al final de los ficheros
No permite múltiples escritores (modelo single-writer,
multiple-readers
Introducción a Hadoop, CSD 11/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
HDFS: Hadoop Distributed File System
Hadoop puede acceder a diferentes tipos de filesystems (local, HDFS,
KFS, S3,. . . )
Se recomienda HDFS: Hadoop Distributed File System
HDFS: Ventajas
Diseñado para almacenar ficheros muy grandes en commodity
hardware
Elevado ancho de banda
Fiabilidad mediante replicacion
HDFS: Inconvenientes
Elevada latencia
Poco eficiente con muchos ficheros pequeños
Modificaciones siempre al final de los ficheros
No permite múltiples escritores (modelo single-writer,
multiple-readers
Introducción a Hadoop, CSD 11/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Conceptos de HDFS
Namenode
Mantiene la información (metadatos) de los ficheros y bloques que
residen en el HDFS
Datanodes
Mantienen los datos
especificados en el fichero
$HADOOP_INSTALL/hadoop/conf/slaves
Bloques
Por defecto 128 MB (64 MB en v1)
bloques pequeños aumentan el paralelismo (un bloque por Map)
bloques más grandes reducen la carga del Namenode
Introducción a Hadoop, CSD 12/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Conceptos de HDFS (cont.)
Secondary namenodes
Mantienen checkpoints del Namenode
debería ejecutarse en un sistema diferente del Namenode
especificados en el fichero
$HADOOP_INSTALL/hadoop/conf/masters
Introducción a Hadoop, CSD 13/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Lectura de datos en HDFS
Cliente
HDFS
Distributed
FileSystem
1: open
Nodo cliente
JVM cliente Namenode
Namenode
Datanode
Datanode
Datanode
Datanode
Datanode
Datanode
Introducción a Hadoop, CSD 14/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Lectura de datos en HDFS
Cliente
HDFS
Distributed
FileSystem
FSData
InputStream
1: open
Nodo cliente
JVM cliente Namenode
Namenode
Datanode
Datanode
Datanode
Datanode
Datanode
Datanode
2: obtiene la
localización de
los bloques
Introducción a Hadoop, CSD 14/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Lectura de datos en HDFS
Cliente
HDFS
Distributed
FileSystem
FSData
InputStream
1: open
3: read
Nodo cliente
JVM cliente Namenode
Namenode
Datanode
Datanode
Datanode
Datanode
Datanode
Datanode
2: obtiene la
localización de
los bloques
Introducción a Hadoop, CSD 14/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Lectura de datos en HDFS
Cliente
HDFS
Distributed
FileSystem
FSData
InputStream
1: open
3: read
Nodo cliente
JVM cliente Namenode
Namenode
Datanode
Datanode
Datanode
Datanode
Datanode
Datanode
2: obtiene la
localización de
los bloques
4: read
Introducción a Hadoop, CSD 14/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Lectura de datos en HDFS
Cliente
HDFS
Distributed
FileSystem
FSData
InputStream
1: open
3: read
Nodo cliente
JVM cliente Namenode
Namenode
Datanode
Datanode
Datanode
Datanode
Datanode
Datanode
2: obtiene la
localización de
los bloques
4: read
5: read
Introducción a Hadoop, CSD 14/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Lectura de datos en HDFS
Cliente
HDFS
Distributed
FileSystem
FSData
InputStream
1: open
3: read
6: close
Nodo cliente
JVM cliente Namenode
Namenode
Datanode
Datanode
Datanode
Datanode
Datanode
Datanode
2: obtiene la
localización de
los bloques
4: read
5: read
Introducción a Hadoop, CSD 14/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Escritura de datos en HDFS
Cliente
HDFS
Distributed
FileSystem
1: create
Nodo cliente
JVM cliente Namenode
Namenode
Datanode
Datanode
Datanode
Datanode
Datanode
Datanode
Pipeline de
Datanodes
Introducción a Hadoop, CSD 15/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Escritura de datos en HDFS
Cliente
HDFS
Distributed
FileSystem
FSData
OutputStream
1: create
Nodo cliente
JVM cliente Namenode
Namenode
Datanode
Datanode
Datanode
Datanode
Datanode
Datanode
2: create
Pipeline de
Datanodes
Introducción a Hadoop, CSD 15/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Escritura de datos en HDFS
Cliente
HDFS
Distributed
FileSystem
FSData
OutputStream
1: create
3: write
Nodo cliente
JVM cliente Namenode
Namenode
Datanode
Datanode
Datanode
Datanode
Datanode
Datanode
2: create
Pipeline de
Datanodes
Introducción a Hadoop, CSD 15/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Escritura de datos en HDFS
Cliente
HDFS
Distributed
FileSystem
FSData
OutputStream
1: create
3: write
Nodo cliente
JVM cliente Namenode
Namenode
Datanode
Datanode
Datanode
Datanode
Datanode
Datanode
2: create
4: write packet
4 4
Pipeline de
Datanodes
Introducción a Hadoop, CSD 15/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Escritura de datos en HDFS
Cliente
HDFS
Distributed
FileSystem
FSData
OutputStream
1: create
3: write
Nodo cliente
JVM cliente Namenode
Namenode
Datanode
Datanode
Datanode
Datanode
Datanode
Datanode
2: create
4: write packet 5: ack packet
5 5
4 4
Pipeline de
Datanodes
Introducción a Hadoop, CSD 15/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Escritura de datos en HDFS
Cliente
HDFS
Distributed
FileSystem
FSData
OutputStream
1: create
3: write
6: close
Nodo cliente
JVM cliente Namenode
Namenode
Datanode
Datanode
Datanode
Datanode
Datanode
Datanode
2: create
4: write packet 5: ack packet
5 5
4 4
Pipeline de
Datanodes
Introducción a Hadoop, CSD 15/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Escritura de datos en HDFS
Cliente
HDFS
Distributed
FileSystem
FSData
OutputStream
1: create
3: write
6: close
Nodo cliente
JVM cliente Namenode
Namenode
Datanode
Datanode
Datanode
Datanode
Datanode
Datanode
2: create
4: write packet 5: ack packet
7: complete
5 5
4 4
Pipeline de
Datanodes
Introducción a Hadoop, CSD 15/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Localización de las replicas
Política por defecto:
1ª réplica: en el nodo del cliente o en
un nodo al azar
2ª réplica: en un rack diferente de la
primera (elegido al azar)
3ª réplica: en el mismo rack que la 2ª,
pero en otro nodo
Otras réplicas: al azar (se intenta
evitar colocar demasiadas réplicas en
el mismo rack)
DataCenter
rack 1 rack 2
nodo
Desde la versión 0.21: políticas “enchufables”
Introducción a Hadoop, CSD 16/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Localización de las replicas
Política por defecto:
1ª réplica: en el nodo del cliente o en
un nodo al azar
2ª réplica: en un rack diferente de la
primera (elegido al azar)
3ª réplica: en el mismo rack que la 2ª,
pero en otro nodo
Otras réplicas: al azar (se intenta
evitar colocar demasiadas réplicas en
el mismo rack)
DataCenter
rack 1 rack 2
nodo
Desde la versión 0.21: políticas “enchufables”
Introducción a Hadoop, CSD 16/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Modelo de coherencia
Para aumentar el rendimiento, HDFS no es POSIX compliant en la
escritura de ficheros
Después de crear un fichero, este es visible es el espacio de
nombres del filesystem,
pero, no se garantiza que sus datos sean visibles
Forzar la visibilidad
Cerrar el stream de salida con close()
Utilizar el método sync() en Hadoop v1, o hflush() en v2, de
la clase FSDataOutputStream
Introducción a Hadoop, CSD 17/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Propiedades configurables
Múltiples propiedades configurables (fichero hdfs-site.xml)
dfs.namenode.name.dir: lista (separada por comas) de
directorios donde el namenode guarda sus metadatos (una copia en
cada directorio), por defecto
file://$hadoop.tmp.dir/dfs/name
dfs.datanode.data.dir: lista (separada por comas) de
directorios donde los datanodes guarda los bloques de datos (cada
bloque en sólo uno de los directorios), por defecto
file://$hadoop.tmp.dir/dfs/data
dfs.namenode.checkpoint.dir: lista (separada por
comas) de directorios donde el secondarynamenode guarda los
checkpoints (una copia en cada directorio), por defecto
file://$hadoop.tmp.dir/dfs/namesecondary
dfs.blocksize: tamaño de bloque para nuevos ficheros (por
defecto, 128MB)
dfs.replication: nº de réplicas por bloque, por defecto 3
Introducción a Hadoop, CSD 18/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Interfaz con HDFS
Varias interfaces:
1. Interfaz en línea de comandos: comando hadoop fs
2. Interfaz web
3. Interfaz Java
Interfaz en línea de comandos:
Permite cargar, descargar y acceder a los ficheros HDFS desde línea
de comandos
Ayuda: hdfs dfs -help
Introducción a Hadoop, CSD 19/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Interfaz con HDFS
Varias interfaces:
1. Interfaz en línea de comandos: comando hadoop fs
2. Interfaz web
3. Interfaz Java
Interfaz en línea de comandos:
Permite cargar, descargar y acceder a los ficheros HDFS desde línea
de comandos
Ayuda: hdfs dfs -help
Introducción a Hadoop, CSD 19/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Problemas con el Namenode
El Namenode es un single point of failure (SPOF)
Si falla es imposible acceder a los datos
Posibilidad de recuperación a partir de los checkpoints
Conveniente guardar varias réplicas de los datos del namenode
(RAID, indicar en dfs.name.dir directorios en diferentes
máquinas, etc)
Mejoras en la versión 2.0
HDFS High-Availability
HDFS Federation
Introducción a Hadoop, CSD 20/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
HDFS High-Availability
Un par de Namenodes en configuración activo-standby
si falla el Namenode activo, el otro ocupa su lugar
Consideraciones
Los Namenodes deben usar un almacenamiento compartido de alta
disponibilidad
Los Datanodes deben enviar informes de bloques a los dos
Namenodes (el block mapping va en memoria, no en disco)
Los Clientes deben manejar el fallo del Namenode de forma
transparente
Más información: hadoop.apache.org/docs/current/hadoop-project-
dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html,
hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-
hdfs/HDFSHighAvailabilityWithNFS.html
Introducción a Hadoop, CSD 21/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
HDFS Federation
El Namenode mantiene, en memoria, referencias a cada fichero y bloque
en el filesystem
problemas de escalabilidad
HDF Federation, introducida en la versión 2.0
Permite usar varios Namenodes
Cada uno gestiona una porción del espacio de nombres del
filesystem
Los Namenodes no se coordinan entre sí
Cada Datanodes se registra con todos los Namenodes
Más información: hadoop.apache.org/docs/current/hadoop-project-
dist/hadoop-hdfs/Federation.html
Introducción a Hadoop, CSD 22/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Índice
1 Introducción a Hadoop
2 Instalación
3 Introducción a HDFS
4 MapReduce en Hadoop v1
5 MapReduce en YARN
6 Ejemplo MapReduce: WordCount
Introducción a Hadoop, CSD
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Terminología MapReduce en Hadoop v1
Jobtracker
Coordina todos los trabajos
Envía tareas a los tasktrackers
Mantiene información sobre el progreso de cada tarea
Tasktrackers
Realizan las tareas
Envían informes de progreso al Jobtracker
Splits
Trozos en los que se divide la entrada a una tarea MapReduce
Normalmente del tamaño de 1 bloque (64 MB)
Introducción a Hadoop, CSD 23/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Elementos de control Hadoop v1
Fuente: A. Murthy, V. Vavilapalli, “Apache Hadoop YARN”, Addison-Wesley, marzo 2014Introducción a Hadoop, CSD 24/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Índice
1 Introducción a Hadoop
2 Instalación
3 Introducción a HDFS
4 MapReduce en Hadoop v1
5 MapReduce en YARN
6 Ejemplo MapReduce: WordCount
Introducción a Hadoop, CSD
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
YARN: the Data Operating System
Un único Jobtracker es un cuello de botella en grandes clusters (más de
4000 nodos)
YARN (Yet Another Resource Negociator): nueva arquitectura
MapReduce
Característica principal:
separa las dos funcionalidades del Jobtracker (gestión de recursos y
job-scheduling/monitorización) en demonios separados: resource
manager, node managers y application masters
MapReduce es una de los tipos de aplicación que pueden correr en
YARN
Más información:
hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site
wiki.apache.org/hadoop/PoweredByYarn
Introducción a Hadoop, CSD 25/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
YARN
Fuente: www.slideshare.net/Hadoop_Summit/apache-hadoop-yarn-present-and-future
Introducción a Hadoop, CSD 26/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Demonios YARN (I)
Resource manager
arbitra los recursos entre las aplicaciones en el sistema
demonio global, obtiene datos del estado del cluster de los node
managers
dos componentes:
Scheduler: planifica aplicaciones en base a sus requerimientos de
recusos (se basa en el concepto de Container de recursos)
Applications Manager: acepta trabajos, negocia containers y
gestiona fallos de los Application Masters
Node managers
uno por nodo
monitorizan los recursos del cluster (containers)
Introducción a Hadoop, CSD 27/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Demonios YARN (II)
Application masters
uno por aplicación
gestiona el ciclo de vida de la aplicación
solicita recursos (containers) al Resource manager y ejecuta la
aplicación en esos containers
trabaja con los Node managers para ejecutar y monitorizar las
tareas
permiten que diferentes tipos de aplicaciones (no solo MapReduce)
se ejecuten en el cluster
Introducción a Hadoop, CSD 28/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Elementos de control YARN
Fuente: A. Murthy, V. Vavilapalli, “Apache Hadoop YARN”, Addison-Wesley, marzo 2014
Introducción a Hadoop, CSD 29/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Índice
1 Introducción a Hadoop
2 Instalación
3 Introducción a HDFS
4 MapReduce en Hadoop v1
5 MapReduce en YARN
6 Ejemplo MapReduce: WordCount
Introducción a Hadoop, CSD
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Ejemplo MapReduce: WordCount
El programa WordCount es el ejemplo canónico de MapReduce
Veremos una implementación muy simple
Definimos tres clases Java
Una clase para la operación Map (WordCountMapper)
Una clase para la operación Reduce (WordCountReducer)
Una clase de control, para inicializar y lanzar el trabajo MapReduce
(WordCountDriver)
Introducción a Hadoop, CSD 30/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Ejemplo MapReduce: WordCount
El programa WordCount es el ejemplo canónico de MapReduce
Veremos una implementación muy simple
Definimos tres clases Java
Una clase para la operación Map (WordCountMapper)
Una clase para la operación Reduce (WordCountReducer)
Una clase de control, para inicializar y lanzar el trabajo MapReduce
(WordCountDriver)
Introducción a Hadoop, CSD 30/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Mapper
public class WordCountMapper
extends Mapper<LongWritable , Text , Text , IntWritable> {
@Override
public void map(LongWritable key, Text value , Context ctxt )
throws IOException , InterruptedException {
Matcher matcher = pat .matcher(value . toString () ) ;
while (matcher. find () ) {
word. set (matcher. group () . toLowerCase () ) ;
ctxt . write (word, one) ;
}
}
private Text word = new Text () ;
private final static IntWritable one = new IntWritable (1) ;
private Pattern pat =
Pattern . compile( "   b[a−zA−Z u00C0−uFFFF]+b" ) ;
}
Introducción a Hadoop, CSD 31/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Reducer
public class WordCountReducer
extends Reducer<Text , IntWritable , Text , IntWritable> {
@Override
public void reduce(Text key, Iterable<IntWritable> values ,
Context ctxt ) throws IOException , InterruptedException {
int sum = 0;
for ( IntWritable value : values ) {
sum += value . get () ;
}
ctxt . write (key, new IntWritable (sum) ) ;
}
}
Introducción a Hadoop, CSD 32/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Driver (I)
public class WordCountDriver
extends Configured implements Tool {
public int run( String [] arg0) throws Exception {
i f (arg0 . length != 2) {
System. err . printf ( "Usar : %s [ops] <entrada> <salida >n" ,
getClass () .getSimpleName() ) ;
ToolRunner .printGenericCommandUsage(System. err ) ;
return −1;
}
Configuration conf = getConf () ;
Job job = Job . getInstance ( conf ) ;
job .setJobName( "Word Count" ) ;
job . setJarByClass ( getClass () ) ;
FileInputFormat . addInputPath( job , new Path(arg0[0]) ) ;
FileOutputFormat . setOutputPath( job , new Path(arg0[1]) ) ;
Introducción a Hadoop, CSD 33/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Driver (II)
job . setOutputKeyClass(Text . class ) ;
job . setOutputValueClass ( IntWritable . class ) ;
job .setNumReduceTasks(1) ;
job . setMapperClass(WordCountMapper. class ) ;
job . setCombinerClass(WordCountReducer. class ) ;
job . setReducerClass(WordCountReducer. class ) ;
return ( job . waitForCompletion( true ) ? 0 : −1);
}
public static void main( String [] args) throws Exception {
int exitCode = ToolRunner . run(new WordCountDriver () , args) ;
System. exit (exitCode) ;
}
}
Introducción a Hadoop, CSD 34/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Compilación y ejecución
Aspectos a tener en cuenta:
1. La nueva API (desde 0.20.0) se encuentra en
org.apache.hadoop.mapreduce (la antigua en
org.apache.hadoop.mapred)
2. Preferiblemente, crear un jar y ejecutarlo con:
yarn jar fichero.jar [opciones]
Para gestionar las aplicaciones, utilizad:
- en general, la opción application del comando yarn (yarn
application -help para ver las opciones)
- para trabajos MapReduce, la opción job del comando mapred
(mapred job -help para ver las opciones)
Más información en
- hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-
site/YarnCommands.html
- hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-
mapreduce-client-core/MapredCommands.html
Introducción a Hadoop, CSD 35/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Alternativas a Java
Hadoop Streaming
API que permite crear códigos map-reduce en otros lenguajes
Utiliza streams Unix como interfaz entre Hadoop y el código
Permite usar cualquier lenguaje que pueda leer de la entrada
estándard y escribir en la salida estándard (Python, Ruby, etc.)
Hadoop Pipes
Interfaz C++ a Hadoop MapReduce
Usa sockets como canal de comunicación entre el NodeManager y
el proceso C++ que ejecuta el map o el reduce
Introducción a Hadoop, CSD 36/36
Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount
Alternativas a Java
Hadoop Streaming
API que permite crear códigos map-reduce en otros lenguajes
Utiliza streams Unix como interfaz entre Hadoop y el código
Permite usar cualquier lenguaje que pueda leer de la entrada
estándard y escribir en la salida estándard (Python, Ruby, etc.)
Hadoop Pipes
Interfaz C++ a Hadoop MapReduce
Usa sockets como canal de comunicación entre el NodeManager y
el proceso C++ que ejecuta el map o el reduce
Introducción a Hadoop, CSD 36/36

Más contenido relacionado

La actualidad más candente

Creación de un clúster de Hadoop con Cloudera
Creación de un clúster de Hadoop con ClouderaCreación de un clúster de Hadoop con Cloudera
Creación de un clúster de Hadoop con ClouderaDavid Albela Pérez
 
Apache Hadoop YARN
Apache Hadoop YARNApache Hadoop YARN
Apache Hadoop YARNAdam Kawa
 
MapReduce Scheduling Algorithms
MapReduce Scheduling AlgorithmsMapReduce Scheduling Algorithms
MapReduce Scheduling AlgorithmsLeila panahi
 
Introduction to Apache Spark Developer Training
Introduction to Apache Spark Developer TrainingIntroduction to Apache Spark Developer Training
Introduction to Apache Spark Developer TrainingCloudera, Inc.
 
Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...
Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...
Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...Helena Edelson
 
Introduction to apache spark
Introduction to apache spark Introduction to apache spark
Introduction to apache spark Aakashdata
 
Apache Spark in Depth: Core Concepts, Architecture & Internals
Apache Spark in Depth: Core Concepts, Architecture & InternalsApache Spark in Depth: Core Concepts, Architecture & Internals
Apache Spark in Depth: Core Concepts, Architecture & InternalsAnton Kirillov
 
Hadoop Overview & Architecture
Hadoop Overview & Architecture  Hadoop Overview & Architecture
Hadoop Overview & Architecture EMC
 
YARN Ready: Integrating to YARN with Tez
YARN Ready: Integrating to YARN with Tez YARN Ready: Integrating to YARN with Tez
YARN Ready: Integrating to YARN with Tez Hortonworks
 

La actualidad más candente (20)

Data engineering design patterns
Data engineering design patternsData engineering design patterns
Data engineering design patterns
 
Introducción a Hadoop
Introducción a HadoopIntroducción a Hadoop
Introducción a Hadoop
 
Creación de un clúster de Hadoop con Cloudera
Creación de un clúster de Hadoop con ClouderaCreación de un clúster de Hadoop con Cloudera
Creación de un clúster de Hadoop con Cloudera
 
MapReduce
MapReduceMapReduce
MapReduce
 
Intro to Apache Spark
Intro to Apache SparkIntro to Apache Spark
Intro to Apache Spark
 
Apache Hadoop YARN
Apache Hadoop YARNApache Hadoop YARN
Apache Hadoop YARN
 
Map Reduce
Map ReduceMap Reduce
Map Reduce
 
MapReduce Scheduling Algorithms
MapReduce Scheduling AlgorithmsMapReduce Scheduling Algorithms
MapReduce Scheduling Algorithms
 
Introduction to Apache Spark Developer Training
Introduction to Apache Spark Developer TrainingIntroduction to Apache Spark Developer Training
Introduction to Apache Spark Developer Training
 
Hive(ppt)
Hive(ppt)Hive(ppt)
Hive(ppt)
 
Sqoop
SqoopSqoop
Sqoop
 
Big data Analytics Hadoop
Big data Analytics HadoopBig data Analytics Hadoop
Big data Analytics Hadoop
 
Map Reduce
Map ReduceMap Reduce
Map Reduce
 
Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...
Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...
Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...
 
Introduction to apache spark
Introduction to apache spark Introduction to apache spark
Introduction to apache spark
 
Apache Spark in Depth: Core Concepts, Architecture & Internals
Apache Spark in Depth: Core Concepts, Architecture & InternalsApache Spark in Depth: Core Concepts, Architecture & Internals
Apache Spark in Depth: Core Concepts, Architecture & Internals
 
Hadoop Overview & Architecture
Hadoop Overview & Architecture  Hadoop Overview & Architecture
Hadoop Overview & Architecture
 
Spark SQL
Spark SQLSpark SQL
Spark SQL
 
YARN Ready: Integrating to YARN with Tez
YARN Ready: Integrating to YARN with Tez YARN Ready: Integrating to YARN with Tez
YARN Ready: Integrating to YARN with Tez
 
Hadoop Map Reduce
Hadoop Map ReduceHadoop Map Reduce
Hadoop Map Reduce
 

Similar a Introducción a Hadoop

Similar a Introducción a Hadoop (20)

Hadoop
HadoopHadoop
Hadoop
 
Presentacion
PresentacionPresentacion
Presentacion
 
Clase Hadoop
Clase HadoopClase Hadoop
Clase Hadoop
 
Hadoop en accion
Hadoop en accionHadoop en accion
Hadoop en accion
 
introduction to hadoop
introduction to hadoopintroduction to hadoop
introduction to hadoop
 
Hadoop en accion
Hadoop en accionHadoop en accion
Hadoop en accion
 
Whitepaper – Qué es y cómo utilizar Hadoop
Whitepaper – Qué es y cómo utilizar HadoopWhitepaper – Qué es y cómo utilizar Hadoop
Whitepaper – Qué es y cómo utilizar Hadoop
 
Hadoop
HadoopHadoop
Hadoop
 
Hadoop, Cloud y Spring
Hadoop, Cloud y Spring Hadoop, Cloud y Spring
Hadoop, Cloud y Spring
 
3. Hadoop
3.  Hadoop3.  Hadoop
3. Hadoop
 
Conociendo los servicios adicionales en big data
Conociendo los servicios adicionales en big dataConociendo los servicios adicionales en big data
Conociendo los servicios adicionales en big data
 
HDFS
HDFSHDFS
HDFS
 
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
MapReduce en Hadoop
MapReduce en HadoopMapReduce en Hadoop
MapReduce en Hadoop
 
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
 
Taller hadoop
Taller hadoopTaller hadoop
Taller hadoop
 
Ensayo 2 (1).pptx
Ensayo 2 (1).pptxEnsayo 2 (1).pptx
Ensayo 2 (1).pptx
 
Hadoop: tecnologias relacionadas
Hadoop: tecnologias relacionadasHadoop: tecnologias relacionadas
Hadoop: tecnologias relacionadas
 
Introducción a polybase en SQL Server
Introducción a polybase en SQL ServerIntroducción a polybase en SQL Server
Introducción a polybase en SQL Server
 

Introducción a Hadoop

  • 1. Introducción a Hadoop Tomás Fernández Pena Máster en Computación de Altas Prestaciones Universidade de Santiago de Compostela Computación en Sistemas Distribuidos Material bajo licencia Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) citius.usc.es
  • 2. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Índice 1 Introducción a Hadoop 2 Instalación 3 Introducción a HDFS 4 MapReduce en Hadoop v1 5 MapReduce en YARN 6 Ejemplo MapReduce: WordCount Introducción a Hadoop, CSD
  • 3. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Índice 1 Introducción a Hadoop 2 Instalación 3 Introducción a HDFS 4 MapReduce en Hadoop v1 5 MapReduce en YARN 6 Ejemplo MapReduce: WordCount Introducción a Hadoop, CSD
  • 4. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Hadoop Implementación open-source de MapReduce Procesamiento de enormes cantidades de datos en grandes clusters de hardware barato (commodity clusters) Escala: petabytes de datos en miles de nodos Introducción a Hadoop, CSD 1/36
  • 5. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Características de Hadoop Incluye Almacenamiento: HDFS Procesamiento: MapReduce (Hadoop v1), YARN (Hadoop v2) Ventajas Bajo coste: clusters baratos o cloud Facilidad de uso Tolerancia a fallos Introducción a Hadoop, CSD 2/36
  • 6. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Características de Hadoop Incluye Almacenamiento: HDFS Procesamiento: MapReduce (Hadoop v1), YARN (Hadoop v2) Ventajas Bajo coste: clusters baratos o cloud Facilidad de uso Tolerancia a fallos Introducción a Hadoop, CSD 2/36
  • 7. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Índice 1 Introducción a Hadoop 2 Instalación 3 Introducción a HDFS 4 MapReduce en Hadoop v1 5 MapReduce en YARN 6 Ejemplo MapReduce: WordCount Introducción a Hadoop, CSD
  • 8. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Instalación Instalación relativamente simple: aplicación Java Paquete fuente: hadoop.apache.org/releases.html Sistemas preconfigurados proporcionados por empresas como Cloudera (www.cloudera.com), MapR (www.mapr.com) o Hortonworks (hortonworks.com), o más específicas como la distribución de Intel o IBM InfoSphere BigInsight Modos de funcionamiento: Standalone: todo en un nodo, para pruebas Pseudodistribuido: funciona como una instalación completa, pero en un solo nodo Totalmente distribuido Introducción a Hadoop, CSD 3/36
  • 9. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Instalación Instalación relativamente simple: aplicación Java Paquete fuente: hadoop.apache.org/releases.html Sistemas preconfigurados proporcionados por empresas como Cloudera (www.cloudera.com), MapR (www.mapr.com) o Hortonworks (hortonworks.com), o más específicas como la distribución de Intel o IBM InfoSphere BigInsight Modos de funcionamiento: Standalone: todo en un nodo, para pruebas Pseudodistribuido: funciona como una instalación completa, pero en un solo nodo Totalmente distribuido Introducción a Hadoop, CSD 3/36
  • 10. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Arquitectura Hadoop v1 Introducción a Hadoop, CSD 4/36
  • 11. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Procesos Cuatro procesos (dæmons) principales: En el master: namenode y jobtracker En los workers: datanode y tasktracker namenode y datanodes: sistema HDFS jobtracker y tasktrackers: trabajos MapReduce Introducción a Hadoop, CSD 5/36
  • 12. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Hadoop v2 Este esquema se ha modificado en Hadoop 2.0 con YARN (Yet Another Resource Negociator) (HSFS se mantiene) separa las dos funcionalidades del Jobtracker (gestión de recursos y job-scheduling/monitorización) en demonios separados Resource manager (RM): planificador general Node managers (NM): monitorización, uno por nodo Application masters (AM): gestión de aplicaciones, uno por aplicación permite que diferentes tipos de aplicaciones (no solo MapReduce) se ejecuten en el cluster Introducción a Hadoop, CSD 6/36
  • 13. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Arquitectura Hadoop v2 Introducción a Hadoop, CSD 7/36
  • 14. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Modelo Hadoop v1 HDFS Almacenamiento distribuido MapReduce Procesamiento distribuidoHBase Basededatos no-relacional Pig Scripts Hive Query Otrosproyectos Oozie,HCatalog,Sqoop, ZooKeeper,Mahout,... Introducción a Hadoop, CSD 8/36
  • 15. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Modelo Hadoop v2 HDFS Almacenamiento distribuido MapReduce Procesamiento distribuidoHBase Basededatos no-relacional Pig Scripts Hive Query Otrosproyectos Oozie,HCatalog,Sqoop, ZooKeeper,Mahout,... YARN Planificador y negociador de recursos Otrosproyectos YARN Introducción a Hadoop, CSD 9/36
  • 16. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount El libro Introducción a Hadoop, CSD 10/36
  • 17. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Índice 1 Introducción a Hadoop 2 Instalación 3 Introducción a HDFS 4 MapReduce en Hadoop v1 5 MapReduce en YARN 6 Ejemplo MapReduce: WordCount Introducción a Hadoop, CSD
  • 18. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount HDFS: Hadoop Distributed File System Hadoop puede acceder a diferentes tipos de filesystems (local, HDFS, KFS, S3,. . . ) Se recomienda HDFS: Hadoop Distributed File System HDFS: Ventajas Diseñado para almacenar ficheros muy grandes en commodity hardware Elevado ancho de banda Fiabilidad mediante replicacion HDFS: Inconvenientes Elevada latencia Poco eficiente con muchos ficheros pequeños Modificaciones siempre al final de los ficheros No permite múltiples escritores (modelo single-writer, multiple-readers Introducción a Hadoop, CSD 11/36
  • 19. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount HDFS: Hadoop Distributed File System Hadoop puede acceder a diferentes tipos de filesystems (local, HDFS, KFS, S3,. . . ) Se recomienda HDFS: Hadoop Distributed File System HDFS: Ventajas Diseñado para almacenar ficheros muy grandes en commodity hardware Elevado ancho de banda Fiabilidad mediante replicacion HDFS: Inconvenientes Elevada latencia Poco eficiente con muchos ficheros pequeños Modificaciones siempre al final de los ficheros No permite múltiples escritores (modelo single-writer, multiple-readers Introducción a Hadoop, CSD 11/36
  • 20. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount HDFS: Hadoop Distributed File System Hadoop puede acceder a diferentes tipos de filesystems (local, HDFS, KFS, S3,. . . ) Se recomienda HDFS: Hadoop Distributed File System HDFS: Ventajas Diseñado para almacenar ficheros muy grandes en commodity hardware Elevado ancho de banda Fiabilidad mediante replicacion HDFS: Inconvenientes Elevada latencia Poco eficiente con muchos ficheros pequeños Modificaciones siempre al final de los ficheros No permite múltiples escritores (modelo single-writer, multiple-readers Introducción a Hadoop, CSD 11/36
  • 21. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Conceptos de HDFS Namenode Mantiene la información (metadatos) de los ficheros y bloques que residen en el HDFS Datanodes Mantienen los datos especificados en el fichero $HADOOP_INSTALL/hadoop/conf/slaves Bloques Por defecto 128 MB (64 MB en v1) bloques pequeños aumentan el paralelismo (un bloque por Map) bloques más grandes reducen la carga del Namenode Introducción a Hadoop, CSD 12/36
  • 22. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Conceptos de HDFS (cont.) Secondary namenodes Mantienen checkpoints del Namenode debería ejecutarse en un sistema diferente del Namenode especificados en el fichero $HADOOP_INSTALL/hadoop/conf/masters Introducción a Hadoop, CSD 13/36
  • 23. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Lectura de datos en HDFS Cliente HDFS Distributed FileSystem 1: open Nodo cliente JVM cliente Namenode Namenode Datanode Datanode Datanode Datanode Datanode Datanode Introducción a Hadoop, CSD 14/36
  • 24. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Lectura de datos en HDFS Cliente HDFS Distributed FileSystem FSData InputStream 1: open Nodo cliente JVM cliente Namenode Namenode Datanode Datanode Datanode Datanode Datanode Datanode 2: obtiene la localización de los bloques Introducción a Hadoop, CSD 14/36
  • 25. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Lectura de datos en HDFS Cliente HDFS Distributed FileSystem FSData InputStream 1: open 3: read Nodo cliente JVM cliente Namenode Namenode Datanode Datanode Datanode Datanode Datanode Datanode 2: obtiene la localización de los bloques Introducción a Hadoop, CSD 14/36
  • 26. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Lectura de datos en HDFS Cliente HDFS Distributed FileSystem FSData InputStream 1: open 3: read Nodo cliente JVM cliente Namenode Namenode Datanode Datanode Datanode Datanode Datanode Datanode 2: obtiene la localización de los bloques 4: read Introducción a Hadoop, CSD 14/36
  • 27. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Lectura de datos en HDFS Cliente HDFS Distributed FileSystem FSData InputStream 1: open 3: read Nodo cliente JVM cliente Namenode Namenode Datanode Datanode Datanode Datanode Datanode Datanode 2: obtiene la localización de los bloques 4: read 5: read Introducción a Hadoop, CSD 14/36
  • 28. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Lectura de datos en HDFS Cliente HDFS Distributed FileSystem FSData InputStream 1: open 3: read 6: close Nodo cliente JVM cliente Namenode Namenode Datanode Datanode Datanode Datanode Datanode Datanode 2: obtiene la localización de los bloques 4: read 5: read Introducción a Hadoop, CSD 14/36
  • 29. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Escritura de datos en HDFS Cliente HDFS Distributed FileSystem 1: create Nodo cliente JVM cliente Namenode Namenode Datanode Datanode Datanode Datanode Datanode Datanode Pipeline de Datanodes Introducción a Hadoop, CSD 15/36
  • 30. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Escritura de datos en HDFS Cliente HDFS Distributed FileSystem FSData OutputStream 1: create Nodo cliente JVM cliente Namenode Namenode Datanode Datanode Datanode Datanode Datanode Datanode 2: create Pipeline de Datanodes Introducción a Hadoop, CSD 15/36
  • 31. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Escritura de datos en HDFS Cliente HDFS Distributed FileSystem FSData OutputStream 1: create 3: write Nodo cliente JVM cliente Namenode Namenode Datanode Datanode Datanode Datanode Datanode Datanode 2: create Pipeline de Datanodes Introducción a Hadoop, CSD 15/36
  • 32. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Escritura de datos en HDFS Cliente HDFS Distributed FileSystem FSData OutputStream 1: create 3: write Nodo cliente JVM cliente Namenode Namenode Datanode Datanode Datanode Datanode Datanode Datanode 2: create 4: write packet 4 4 Pipeline de Datanodes Introducción a Hadoop, CSD 15/36
  • 33. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Escritura de datos en HDFS Cliente HDFS Distributed FileSystem FSData OutputStream 1: create 3: write Nodo cliente JVM cliente Namenode Namenode Datanode Datanode Datanode Datanode Datanode Datanode 2: create 4: write packet 5: ack packet 5 5 4 4 Pipeline de Datanodes Introducción a Hadoop, CSD 15/36
  • 34. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Escritura de datos en HDFS Cliente HDFS Distributed FileSystem FSData OutputStream 1: create 3: write 6: close Nodo cliente JVM cliente Namenode Namenode Datanode Datanode Datanode Datanode Datanode Datanode 2: create 4: write packet 5: ack packet 5 5 4 4 Pipeline de Datanodes Introducción a Hadoop, CSD 15/36
  • 35. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Escritura de datos en HDFS Cliente HDFS Distributed FileSystem FSData OutputStream 1: create 3: write 6: close Nodo cliente JVM cliente Namenode Namenode Datanode Datanode Datanode Datanode Datanode Datanode 2: create 4: write packet 5: ack packet 7: complete 5 5 4 4 Pipeline de Datanodes Introducción a Hadoop, CSD 15/36
  • 36. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Localización de las replicas Política por defecto: 1ª réplica: en el nodo del cliente o en un nodo al azar 2ª réplica: en un rack diferente de la primera (elegido al azar) 3ª réplica: en el mismo rack que la 2ª, pero en otro nodo Otras réplicas: al azar (se intenta evitar colocar demasiadas réplicas en el mismo rack) DataCenter rack 1 rack 2 nodo Desde la versión 0.21: políticas “enchufables” Introducción a Hadoop, CSD 16/36
  • 37. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Localización de las replicas Política por defecto: 1ª réplica: en el nodo del cliente o en un nodo al azar 2ª réplica: en un rack diferente de la primera (elegido al azar) 3ª réplica: en el mismo rack que la 2ª, pero en otro nodo Otras réplicas: al azar (se intenta evitar colocar demasiadas réplicas en el mismo rack) DataCenter rack 1 rack 2 nodo Desde la versión 0.21: políticas “enchufables” Introducción a Hadoop, CSD 16/36
  • 38. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Modelo de coherencia Para aumentar el rendimiento, HDFS no es POSIX compliant en la escritura de ficheros Después de crear un fichero, este es visible es el espacio de nombres del filesystem, pero, no se garantiza que sus datos sean visibles Forzar la visibilidad Cerrar el stream de salida con close() Utilizar el método sync() en Hadoop v1, o hflush() en v2, de la clase FSDataOutputStream Introducción a Hadoop, CSD 17/36
  • 39. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Propiedades configurables Múltiples propiedades configurables (fichero hdfs-site.xml) dfs.namenode.name.dir: lista (separada por comas) de directorios donde el namenode guarda sus metadatos (una copia en cada directorio), por defecto file://$hadoop.tmp.dir/dfs/name dfs.datanode.data.dir: lista (separada por comas) de directorios donde los datanodes guarda los bloques de datos (cada bloque en sólo uno de los directorios), por defecto file://$hadoop.tmp.dir/dfs/data dfs.namenode.checkpoint.dir: lista (separada por comas) de directorios donde el secondarynamenode guarda los checkpoints (una copia en cada directorio), por defecto file://$hadoop.tmp.dir/dfs/namesecondary dfs.blocksize: tamaño de bloque para nuevos ficheros (por defecto, 128MB) dfs.replication: nº de réplicas por bloque, por defecto 3 Introducción a Hadoop, CSD 18/36
  • 40. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Interfaz con HDFS Varias interfaces: 1. Interfaz en línea de comandos: comando hadoop fs 2. Interfaz web 3. Interfaz Java Interfaz en línea de comandos: Permite cargar, descargar y acceder a los ficheros HDFS desde línea de comandos Ayuda: hdfs dfs -help Introducción a Hadoop, CSD 19/36
  • 41. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Interfaz con HDFS Varias interfaces: 1. Interfaz en línea de comandos: comando hadoop fs 2. Interfaz web 3. Interfaz Java Interfaz en línea de comandos: Permite cargar, descargar y acceder a los ficheros HDFS desde línea de comandos Ayuda: hdfs dfs -help Introducción a Hadoop, CSD 19/36
  • 42. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Problemas con el Namenode El Namenode es un single point of failure (SPOF) Si falla es imposible acceder a los datos Posibilidad de recuperación a partir de los checkpoints Conveniente guardar varias réplicas de los datos del namenode (RAID, indicar en dfs.name.dir directorios en diferentes máquinas, etc) Mejoras en la versión 2.0 HDFS High-Availability HDFS Federation Introducción a Hadoop, CSD 20/36
  • 43. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount HDFS High-Availability Un par de Namenodes en configuración activo-standby si falla el Namenode activo, el otro ocupa su lugar Consideraciones Los Namenodes deben usar un almacenamiento compartido de alta disponibilidad Los Datanodes deben enviar informes de bloques a los dos Namenodes (el block mapping va en memoria, no en disco) Los Clientes deben manejar el fallo del Namenode de forma transparente Más información: hadoop.apache.org/docs/current/hadoop-project- dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html, hadoop.apache.org/docs/current/hadoop-project-dist/hadoop- hdfs/HDFSHighAvailabilityWithNFS.html Introducción a Hadoop, CSD 21/36
  • 44. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount HDFS Federation El Namenode mantiene, en memoria, referencias a cada fichero y bloque en el filesystem problemas de escalabilidad HDF Federation, introducida en la versión 2.0 Permite usar varios Namenodes Cada uno gestiona una porción del espacio de nombres del filesystem Los Namenodes no se coordinan entre sí Cada Datanodes se registra con todos los Namenodes Más información: hadoop.apache.org/docs/current/hadoop-project- dist/hadoop-hdfs/Federation.html Introducción a Hadoop, CSD 22/36
  • 45. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Índice 1 Introducción a Hadoop 2 Instalación 3 Introducción a HDFS 4 MapReduce en Hadoop v1 5 MapReduce en YARN 6 Ejemplo MapReduce: WordCount Introducción a Hadoop, CSD
  • 46. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Terminología MapReduce en Hadoop v1 Jobtracker Coordina todos los trabajos Envía tareas a los tasktrackers Mantiene información sobre el progreso de cada tarea Tasktrackers Realizan las tareas Envían informes de progreso al Jobtracker Splits Trozos en los que se divide la entrada a una tarea MapReduce Normalmente del tamaño de 1 bloque (64 MB) Introducción a Hadoop, CSD 23/36
  • 47. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Elementos de control Hadoop v1 Fuente: A. Murthy, V. Vavilapalli, “Apache Hadoop YARN”, Addison-Wesley, marzo 2014Introducción a Hadoop, CSD 24/36
  • 48. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Índice 1 Introducción a Hadoop 2 Instalación 3 Introducción a HDFS 4 MapReduce en Hadoop v1 5 MapReduce en YARN 6 Ejemplo MapReduce: WordCount Introducción a Hadoop, CSD
  • 49. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount YARN: the Data Operating System Un único Jobtracker es un cuello de botella en grandes clusters (más de 4000 nodos) YARN (Yet Another Resource Negociator): nueva arquitectura MapReduce Característica principal: separa las dos funcionalidades del Jobtracker (gestión de recursos y job-scheduling/monitorización) en demonios separados: resource manager, node managers y application masters MapReduce es una de los tipos de aplicación que pueden correr en YARN Más información: hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site wiki.apache.org/hadoop/PoweredByYarn Introducción a Hadoop, CSD 25/36
  • 50. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount YARN Fuente: www.slideshare.net/Hadoop_Summit/apache-hadoop-yarn-present-and-future Introducción a Hadoop, CSD 26/36
  • 51. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Demonios YARN (I) Resource manager arbitra los recursos entre las aplicaciones en el sistema demonio global, obtiene datos del estado del cluster de los node managers dos componentes: Scheduler: planifica aplicaciones en base a sus requerimientos de recusos (se basa en el concepto de Container de recursos) Applications Manager: acepta trabajos, negocia containers y gestiona fallos de los Application Masters Node managers uno por nodo monitorizan los recursos del cluster (containers) Introducción a Hadoop, CSD 27/36
  • 52. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Demonios YARN (II) Application masters uno por aplicación gestiona el ciclo de vida de la aplicación solicita recursos (containers) al Resource manager y ejecuta la aplicación en esos containers trabaja con los Node managers para ejecutar y monitorizar las tareas permiten que diferentes tipos de aplicaciones (no solo MapReduce) se ejecuten en el cluster Introducción a Hadoop, CSD 28/36
  • 53. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Elementos de control YARN Fuente: A. Murthy, V. Vavilapalli, “Apache Hadoop YARN”, Addison-Wesley, marzo 2014 Introducción a Hadoop, CSD 29/36
  • 54. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Índice 1 Introducción a Hadoop 2 Instalación 3 Introducción a HDFS 4 MapReduce en Hadoop v1 5 MapReduce en YARN 6 Ejemplo MapReduce: WordCount Introducción a Hadoop, CSD
  • 55. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Ejemplo MapReduce: WordCount El programa WordCount es el ejemplo canónico de MapReduce Veremos una implementación muy simple Definimos tres clases Java Una clase para la operación Map (WordCountMapper) Una clase para la operación Reduce (WordCountReducer) Una clase de control, para inicializar y lanzar el trabajo MapReduce (WordCountDriver) Introducción a Hadoop, CSD 30/36
  • 56. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Ejemplo MapReduce: WordCount El programa WordCount es el ejemplo canónico de MapReduce Veremos una implementación muy simple Definimos tres clases Java Una clase para la operación Map (WordCountMapper) Una clase para la operación Reduce (WordCountReducer) Una clase de control, para inicializar y lanzar el trabajo MapReduce (WordCountDriver) Introducción a Hadoop, CSD 30/36
  • 57. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Mapper public class WordCountMapper extends Mapper<LongWritable , Text , Text , IntWritable> { @Override public void map(LongWritable key, Text value , Context ctxt ) throws IOException , InterruptedException { Matcher matcher = pat .matcher(value . toString () ) ; while (matcher. find () ) { word. set (matcher. group () . toLowerCase () ) ; ctxt . write (word, one) ; } } private Text word = new Text () ; private final static IntWritable one = new IntWritable (1) ; private Pattern pat = Pattern . compile( " b[a−zA−Z u00C0−uFFFF]+b" ) ; } Introducción a Hadoop, CSD 31/36
  • 58. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Reducer public class WordCountReducer extends Reducer<Text , IntWritable , Text , IntWritable> { @Override public void reduce(Text key, Iterable<IntWritable> values , Context ctxt ) throws IOException , InterruptedException { int sum = 0; for ( IntWritable value : values ) { sum += value . get () ; } ctxt . write (key, new IntWritable (sum) ) ; } } Introducción a Hadoop, CSD 32/36
  • 59. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Driver (I) public class WordCountDriver extends Configured implements Tool { public int run( String [] arg0) throws Exception { i f (arg0 . length != 2) { System. err . printf ( "Usar : %s [ops] <entrada> <salida >n" , getClass () .getSimpleName() ) ; ToolRunner .printGenericCommandUsage(System. err ) ; return −1; } Configuration conf = getConf () ; Job job = Job . getInstance ( conf ) ; job .setJobName( "Word Count" ) ; job . setJarByClass ( getClass () ) ; FileInputFormat . addInputPath( job , new Path(arg0[0]) ) ; FileOutputFormat . setOutputPath( job , new Path(arg0[1]) ) ; Introducción a Hadoop, CSD 33/36
  • 60. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Driver (II) job . setOutputKeyClass(Text . class ) ; job . setOutputValueClass ( IntWritable . class ) ; job .setNumReduceTasks(1) ; job . setMapperClass(WordCountMapper. class ) ; job . setCombinerClass(WordCountReducer. class ) ; job . setReducerClass(WordCountReducer. class ) ; return ( job . waitForCompletion( true ) ? 0 : −1); } public static void main( String [] args) throws Exception { int exitCode = ToolRunner . run(new WordCountDriver () , args) ; System. exit (exitCode) ; } } Introducción a Hadoop, CSD 34/36
  • 61. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Compilación y ejecución Aspectos a tener en cuenta: 1. La nueva API (desde 0.20.0) se encuentra en org.apache.hadoop.mapreduce (la antigua en org.apache.hadoop.mapred) 2. Preferiblemente, crear un jar y ejecutarlo con: yarn jar fichero.jar [opciones] Para gestionar las aplicaciones, utilizad: - en general, la opción application del comando yarn (yarn application -help para ver las opciones) - para trabajos MapReduce, la opción job del comando mapred (mapred job -help para ver las opciones) Más información en - hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn- site/YarnCommands.html - hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop- mapreduce-client-core/MapredCommands.html Introducción a Hadoop, CSD 35/36
  • 62. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Alternativas a Java Hadoop Streaming API que permite crear códigos map-reduce en otros lenguajes Utiliza streams Unix como interfaz entre Hadoop y el código Permite usar cualquier lenguaje que pueda leer de la entrada estándard y escribir en la salida estándard (Python, Ruby, etc.) Hadoop Pipes Interfaz C++ a Hadoop MapReduce Usa sockets como canal de comunicación entre el NodeManager y el proceso C++ que ejecuta el map o el reduce Introducción a Hadoop, CSD 36/36
  • 63. Introducción a Hadoop Instalación Introducción a HDFS MapReduce en Hadoop v1 MapReduce en YARN Ejemplo MapReduce: WordCount Alternativas a Java Hadoop Streaming API que permite crear códigos map-reduce en otros lenguajes Utiliza streams Unix como interfaz entre Hadoop y el código Permite usar cualquier lenguaje que pueda leer de la entrada estándard y escribir en la salida estándard (Python, Ruby, etc.) Hadoop Pipes Interfaz C++ a Hadoop MapReduce Usa sockets como canal de comunicación entre el NodeManager y el proceso C++ que ejecuta el map o el reduce Introducción a Hadoop, CSD 36/36