61
Hadoop Luciano Olmedo Gerardo Lareu Leandro Pablo Remorini - Prof : Jose Luis Di Biase UNQ Junio 25, 2015 Laboratorio de Sistemas Operativos y Redes Una introduccin a Hadoop 1/31

Hadoop - interorganic.com.ar · Hadoop Luciano Olmedo Gerardo Lareu Leandro Pablo Remorini-Prof : Jose Luis Di Biase UNQ Junio 25, 2015 Laboratorio de Sistemas Operativos y Redes

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Hadoop

Luciano Olmedo Gerardo LareuLeandro Pablo Remorini

-Prof : Jose Luis Di Biase

UNQ

Junio 25, 2015

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 1/31

Hadoop

(a)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 2/31

Hadoop

Temario

• Que es Hadoop• Hadoop en detalle• Que vamos a hacer con Hadoop

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 3/31

Hadoop

Temario• Que es Hadoop

• Hadoop en detalle• Que vamos a hacer con Hadoop

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 3/31

Hadoop

Temario• Que es Hadoop• Hadoop en detalle

• Que vamos a hacer con Hadoop

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 3/31

Hadoop

Temario• Que es Hadoop• Hadoop en detalle• Que vamos a hacer con Hadoop

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 3/31

Que es Hadoop?

(Apache) Hadoop es un framework de software libre con unalicencia Apache Commons que consiste basicamente de:

• Un sistema de archivos distribuido, escalable (linealmente)escrito en Java (HDFS).

• Algo que me permita trabajar de forma distribuida conmuchos datos en clusters de computadoras. (MapReduce)

• YARN: Un framework para gestionar los recursos delcluester y los job scheduling.

• Hadoop Common: Utilidades que soportan a los otrosmodulos de Hadoop.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 4/31

Que es Hadoop?

(Apache) Hadoop es un framework de software libre con unalicencia Apache Commons que consiste basicamente de:

• Un sistema de archivos distribuido, escalable (linealmente)escrito en Java (HDFS).

• Algo que me permita trabajar de forma distribuida conmuchos datos en clusters de computadoras. (MapReduce)

• YARN: Un framework para gestionar los recursos delcluester y los job scheduling.

• Hadoop Common: Utilidades que soportan a los otrosmodulos de Hadoop.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 4/31

Que es Hadoop?

(Apache) Hadoop es un framework de software libre con unalicencia Apache Commons que consiste basicamente de:

• Un sistema de archivos distribuido, escalable (linealmente)escrito en Java (HDFS).

• Algo que me permita trabajar de forma distribuida conmuchos datos en clusters de computadoras. (MapReduce)

• YARN: Un framework para gestionar los recursos delcluester y los job scheduling.

• Hadoop Common: Utilidades que soportan a los otrosmodulos de Hadoop.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 4/31

Que es Hadoop?

(Apache) Hadoop es un framework de software libre con unalicencia Apache Commons que consiste basicamente de:

• Un sistema de archivos distribuido, escalable (linealmente)escrito en Java (HDFS).

• Algo que me permita trabajar de forma distribuida conmuchos datos en clusters de computadoras. (MapReduce)

• YARN: Un framework para gestionar los recursos delcluester y los job scheduling.

• Hadoop Common: Utilidades que soportan a los otrosmodulos de Hadoop.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 4/31

Que es Hadoop?

(Apache) Hadoop es un framework de software libre con unalicencia Apache Commons que consiste basicamente de:

• Un sistema de archivos distribuido, escalable (linealmente)escrito en Java (HDFS).

• Algo que me permita trabajar de forma distribuida conmuchos datos en clusters de computadoras. (MapReduce)

• YARN: Un framework para gestionar los recursos delcluester y los job scheduling.

• Hadoop Common: Utilidades que soportan a los otrosmodulos de Hadoop.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 4/31

Un poco (muy poco) de historia...

La idea detras de Hadoop surgio en los documentos Googlepara MapReduce y Google File System (GFS).

• Google puso los papers, mucha gente puso el codigo,Yahoo (entre otros) financiamiento.

• Trata de un sistema base con agregados

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 5/31

Un poco (muy poco) de historia...

La idea detras de Hadoop surgio en los documentos Googlepara MapReduce y Google File System (GFS).

• Google puso los papers, mucha gente puso el codigo,Yahoo (entre otros) financiamiento.

• Trata de un sistema base con agregados

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 5/31

Un poco (muy poco) de historia...

La idea detras de Hadoop surgio en los documentos Googlepara MapReduce y Google File System (GFS).

• Google puso los papers, mucha gente puso el codigo,Yahoo (entre otros) financiamiento.

• Trata de un sistema base con agregados

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 5/31

Un poco de Arquitectura

(b)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 6/31

Un poco de Arquitectura

Hadoop posee varias formas de ejecución:

• Modo Standalone: No se necesita configurar casi nada.• Modo PseudoDistribuido: Un sistema basado en cliente

servidor, pero que se ejecuta en modo local todo. O seasirve para simular un cluster de varios nodos perocorriendo en una misma máquina es decir en la mismaJava VM.

• Modo distribuido: Infraestructura completa con variosnodos de almacenamiento, ejecución.No vamos a focalizaren esto

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 7/31

Un poco de Arquitectura

Hadoop posee varias formas de ejecución:• Modo Standalone: No se necesita configurar casi nada.

• Modo PseudoDistribuido: Un sistema basado en clienteservidor, pero que se ejecuta en modo local todo. O seasirve para simular un cluster de varios nodos perocorriendo en una misma máquina es decir en la mismaJava VM.

• Modo distribuido: Infraestructura completa con variosnodos de almacenamiento, ejecución.No vamos a focalizaren esto

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 7/31

Un poco de Arquitectura

Hadoop posee varias formas de ejecución:• Modo Standalone: No se necesita configurar casi nada.• Modo PseudoDistribuido: Un sistema basado en cliente

servidor, pero que se ejecuta en modo local todo. O seasirve para simular un cluster de varios nodos perocorriendo en una misma máquina es decir en la mismaJava VM.

• Modo distribuido: Infraestructura completa con variosnodos de almacenamiento, ejecución.No vamos a focalizaren esto

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 7/31

Un poco de Arquitectura

Hadoop posee varias formas de ejecución:• Modo Standalone: No se necesita configurar casi nada.• Modo PseudoDistribuido: Un sistema basado en cliente

servidor, pero que se ejecuta en modo local todo. O seasirve para simular un cluster de varios nodos perocorriendo en una misma máquina es decir en la mismaJava VM.

• Modo distribuido: Infraestructura completa con variosnodos de almacenamiento, ejecución.No vamos a focalizaren esto

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 7/31

HDFSHDFS es una implementación GFS.Se trata de un sistema dearchivos distribuido en cada nodo del cluster. Utiliza un tamañode bloque variable (64Mb,128Mb,256,...) y está pensado paratrabajar con grandes ficheros de datos. Está diseñado para serun sistema de ficheros distribuido, escalable, tolerante a fallos,con un intensivo acceso a datos y alta concurrencia.

• Sigue una filosofía "Write once, read more" en concretopara albergar grandes ficheros y principalmente pensadopara programas batch donde los datos no son en tiemporeal.

• Divide archivos en bloques de tamaño fijo y los distribuyeen los distintos nodos del cluster. Debido a que seproduce mucho tráfico por la red para distribuir lainformación se opta por un tamaño de bloque alto.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 8/31

HDFSHDFS es una implementación GFS.Se trata de un sistema dearchivos distribuido en cada nodo del cluster. Utiliza un tamañode bloque variable (64Mb,128Mb,256,...) y está pensado paratrabajar con grandes ficheros de datos. Está diseñado para serun sistema de ficheros distribuido, escalable, tolerante a fallos,con un intensivo acceso a datos y alta concurrencia.

• Sigue una filosofía "Write once, read more" en concretopara albergar grandes ficheros y principalmente pensadopara programas batch donde los datos no son en tiemporeal.

• Divide archivos en bloques de tamaño fijo y los distribuyeen los distintos nodos del cluster. Debido a que seproduce mucho tráfico por la red para distribuir lainformación se opta por un tamaño de bloque alto.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 8/31

HDFSHDFS es una implementación GFS.Se trata de un sistema dearchivos distribuido en cada nodo del cluster. Utiliza un tamañode bloque variable (64Mb,128Mb,256,...) y está pensado paratrabajar con grandes ficheros de datos. Está diseñado para serun sistema de ficheros distribuido, escalable, tolerante a fallos,con un intensivo acceso a datos y alta concurrencia.

• Sigue una filosofía "Write once, read more" en concretopara albergar grandes ficheros y principalmente pensadopara programas batch donde los datos no son en tiemporeal.

• Divide archivos en bloques de tamaño fijo y los distribuyeen los distintos nodos del cluster. Debido a que seproduce mucho tráfico por la red para distribuir lainformación se opta por un tamaño de bloque alto.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 8/31

HDFS

La gestión del cluster la realiza el NameNode. Es el nodomaestro encargado de gestionar los metadatos de los ficherosy los directorios, coordina los bloques que se envían a cadadatanode (quienes hacen el trabajo y donde se guarda lainformacion) monitorizando su estado para asegurar que todoslos trabajos se completan correctamente, redirigiendo bloquesa otros datanodes si alguno estuviera caído. La información delos metadatos se almacena en memoria RAM para que elacceso sea más rápido.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 9/31

HDFS

(c)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 10/31

Leer datos de HDFS

(d)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 11/31

Escribir datos de HDFS

(e)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 12/31

Replicación

La alta disponibilidad de los datos en Hadoop es posible debidoa que lleva implícita la replicación de datos en un clústerHadoop:

• Un bloque de archivo se replica en varios "nodos de datos"en función del "factor de replicación" del clúster Hadoop,que podría ser 1, 2, 3...

• Un factor de replicación de 1 indica que un bloque dearchivo residirá en un sólo "nodo de datos".

• Un factor de replicación de 2 indica que un bloque dearchivo residirá en dos "nodos de datos", ya sea dentro delmismo rack o en uno que esté físicamente a miles dekilómetros de distancia; etc, etc.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 13/31

Replicación

La alta disponibilidad de los datos en Hadoop es posible debidoa que lleva implícita la replicación de datos en un clústerHadoop:

• Un bloque de archivo se replica en varios "nodos de datos"en función del "factor de replicación" del clúster Hadoop,que podría ser 1, 2, 3...

• Un factor de replicación de 1 indica que un bloque dearchivo residirá en un sólo "nodo de datos".

• Un factor de replicación de 2 indica que un bloque dearchivo residirá en dos "nodos de datos", ya sea dentro delmismo rack o en uno que esté físicamente a miles dekilómetros de distancia; etc, etc.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 13/31

Replicación

La alta disponibilidad de los datos en Hadoop es posible debidoa que lleva implícita la replicación de datos en un clústerHadoop:

• Un bloque de archivo se replica en varios "nodos de datos"en función del "factor de replicación" del clúster Hadoop,que podría ser 1, 2, 3...

• Un factor de replicación de 1 indica que un bloque dearchivo residirá en un sólo "nodo de datos".

• Un factor de replicación de 2 indica que un bloque dearchivo residirá en dos "nodos de datos", ya sea dentro delmismo rack o en uno que esté físicamente a miles dekilómetros de distancia; etc, etc.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 13/31

Replicación

La alta disponibilidad de los datos en Hadoop es posible debidoa que lleva implícita la replicación de datos en un clústerHadoop:

• Un bloque de archivo se replica en varios "nodos de datos"en función del "factor de replicación" del clúster Hadoop,que podría ser 1, 2, 3...

• Un factor de replicación de 1 indica que un bloque dearchivo residirá en un sólo "nodo de datos".

• Un factor de replicación de 2 indica que un bloque dearchivo residirá en dos "nodos de datos", ya sea dentro delmismo rack o en uno que esté físicamente a miles dekilómetros de distancia; etc, etc.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 13/31

Replicación

(f)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 14/31

MapReduce : Map y Fold en formade fichas

(g) Alf

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 15/31

MapReduce : Map y Fold en formade fichas

(h) MapReduce

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 16/31

MapReduce : Map y Fold en formade fichas

(i) MapReduce

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 17/31

Las otras herramientas: PIG, HIVE ,...

(j)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 18/31

PIG

Apache Pig, inicialmente desarrollado por Yahoo, permite a losusuarios de Hadoop centrarse más en el análisis de los datos ymenos en la creación de programas MapReduce. Pig constade dos componentes:

• El lenguaje en si, llamado PigLatin.

• El entorno de ejecución, donde los programas PigLatin seejecutan.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 19/31

PIG

Apache Pig, inicialmente desarrollado por Yahoo, permite a losusuarios de Hadoop centrarse más en el análisis de los datos ymenos en la creación de programas MapReduce. Pig constade dos componentes:

• El lenguaje en si, llamado PigLatin.• El entorno de ejecución, donde los programas PigLatin se

ejecutan.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 19/31

HIVE

Hive es un sistema de Data Warehouse para Hadoop quefacilita el uso de la agregación de los datos, ad-hoc queries, yel análisis de grandes datasets almacenados en Hadoop. Hiveproporciona métodos de consulta de los datos usando unlenguaje parecido al SQL, llamado HiveQL. Además permite deusar los tradicionales Map/Reduce cuando el rendimiento no esel correcto. Tiene interfaces JDBC/ODBC, por lo que empiezaa funcionar su integración con herramientas de BI.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 20/31

HBASE

HBase, se trata de la base de datos de Hadoop. HBase es elcomponente de Hadoop a usar, cuando se requiereescrituras/lecturas en tiempo real y acceso aleatorio paragrandes conjuntos de datos. Es una base de datos NOSQL deltipo clave-valor.

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 21/31

Que vamos a hacer con Hadoop

Lo que hicimos:

• Instalación y configuración.• Correr el sistema de archivo

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 22/31

Que vamos a hacer con Hadoop

Lo que hicimos:• Instalación y configuración.

• Correr el sistema de archivo

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 22/31

Que vamos a hacer con Hadoop

Lo que hicimos:• Instalación y configuración.• Correr el sistema de archivo

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 22/31

Implementación de HADOOP

Especificaciones del sistema de prueba

• Ubuntu 14.04• Interl dualcore 4400•

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 23/31

Implementación de HADOOP

Especificaciones del sistema de prueba• Ubuntu 14.04

• Interl dualcore 4400•

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 23/31

Implementación de HADOOP

Especificaciones del sistema de prueba• Ubuntu 14.04• Interl dualcore 4400

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 23/31

Implementación de HADOOP

Especificaciones del sistema de prueba• Ubuntu 14.04• Interl dualcore 4400•

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 23/31

Implementación de HADOOPRequerimientos previos

• Instalacion de java

(k)

(l)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 24/31

Implementación de HADOOPRequerimientos previos

• Instalacion de java

(m)

(n)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 24/31

Implementacion de HADOOPHadoop tambien requiere la intalacion de ssh y rsync

• Instalacion de ssh

(o)

• Instalacion de rsync

(p)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 25/31

Implementacion de HADOOPHadoop tambien requiere la intalacion de ssh y rsync

• Instalacion de ssh

(q)

• Instalacion de rsync

(r)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 25/31

Implementacion de HADOOPYa tendriamos preparado el sistema para instalar Hadoop

• Descargamos la version 2.70 de Hadoop de la paginahttp://hadoop.apache.org y la descoprimimos. Nos tieneque quedar una carpeta /haddop con la que vamos atrabajar en adelante

(s)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 26/31

Implementacion de HADOOPYa tendriamos preparado el sistema para instalar Hadoop

• Descargamos la version 2.70 de Hadoop de la paginahttp://hadoop.apache.org y la descoprimimos. Nos tieneque quedar una carpeta /haddop con la que vamos atrabajar en adelante

(t)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 26/31

Implementacion de HADOOP

Configurando Hadoop

• En primer lugar tenemos que obtener la ruta de lainstalacion de java. Esto lo logramos con el siguientecomando

(u)

En este caso la ruta seria /usr/lib/jvm/java-7-openjdk-i386

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 27/31

Implementacion de HADOOP

Configurando Hadoop• En primer lugar tenemos que obtener la ruta de la

instalacion de java. Esto lo logramos con el siguientecomando

(v)

En este caso la ruta seria /usr/lib/jvm/java-7-openjdk-i386

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 27/31

Implementacion de HADOOPConfigurando Hadoop

• Ahora debemos editar el archivohadoop/etc/hadoop-env.sh. Deberia quedar asi.

(w)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 28/31

Implementacion de HADOOPConfigurando Hadoop

• Ahora debemos editar el archivohadoop/etc/hadoop-env.sh. Deberia quedar asi.

(x)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 28/31

Implementacion de HADOOPConfigurando Hadoop

• Haddop utiliza ssh para conectarse a los nodos. Sshnormalmente requiere de un usuario y password paraingresar. Esto es necesario eliminarlo para accederdirectamente. Esto lo logramos con el siguiente comando.

(y)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 29/31

Implementacion de HADOOPConfigurando Hadoop

• Haddop utiliza ssh para conectarse a los nodos. Sshnormalmente requiere de un usuario y password paraingresar. Esto es necesario eliminarlo para accederdirectamente. Esto lo logramos con el siguiente comando.

(z)

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 29/31

Implementacion de HADOOPConfigurando Hadoop

• Probamos Hadoop con el siguiente comando. Se deberiaver algo asi.

()

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 30/31

Implementacion de HADOOPConfigurando Hadoop

• Probamos Hadoop con el siguiente comando. Se deberiaver algo asi.

()

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 30/31

Preguntas?

Laboratorio de Sistemas Operativos y Redes Una introducción a Hadoop 31/31