Introducción a Hadoop. Instalación en AWS Fco. Javier Lahoz Sevilla
Introducción a Hadoop. Instalación en AWS
• Parte 1. Introducción a Hadoop – ¿Que es Hadoop? – Versiones de Hadoop – GesCón y monitorización de un cluster – Configuración de un cluster – Dimensionamiento de un cluster – Principales tecnologías del ecosistema de Hadoop – Principales distribuciones de Hadoop
• Parte 2. Instalación en AWS – Instalación y configuración en una instancia EC2 – Escalar a varias instancias y configurar el cluster – Probar el correcto funcionamiento del cluster
¿Que es Hadoop?
• Hadoop es un sistema de código abierto que se uCliza para almacenar, procesar y explotar grades volúmenes de datos. Hadoop se inspiró en los documentos de Google para MapReduce y Google File System.
• Componentes: – HDFS. El Hadoop Distributed File System es un sistema de archivos
distribuido, escalable y consistente a fallos.
– MapReduce. Paradigma de computación paralela donde se distribuyen las tareas para su procesamiento unitario (Map) y se agrupan una vez procesados (Reduce).
Fco. Javier Lahoz Sevilla
Maquina 2
¿Que es Hadoop?
• HDFS
Fichero 1 Fichero 2 Fichero 3
Máquina 1
B1 B1 B1
B1
B1
B1
B2
B2 B2
B2 B3
Maquina 3
B3
B1 B2 B3 B1 B2 B1
Fco. Javier Lahoz Sevilla
¿Que es Hadoop?
• MapReduce
esto es una prueba prueba de contar palabras palabras de una prueba
Map Maquina 1
(esto,1) (es,1) (una,1)
(prueba,1)
Maquina 2
(prueba,1) (de,1)
(contar,1) (palabras,1)
Maquina 3
(palabras,1) (de,1) (una,1)
(prueba,1)
Input
Fco. Javier Lahoz Sevilla
¿Que es Hadoop?
• MapReduce
esto es una prueba prueba de contar palabras palabras de una prueba
Map Maquina 1
(esto,1) (es,1) (una,1)
(prueba,1)
Maquina 2
(prueba,1) (de,1)
(contar,1) (palabras,1)
Maquina 3
(palabras,1) (de,1) (una,1)
(prueba,1)
Suffle&Sort Maquina 1
(es,1) (esto,1)
(prueba,1) (prueba,1) (prueba,1)
Maquina 2
(contar,1) (de,1) (de,1)
Maquina 3
(palabras,1) (palabras,1) (una,1) (una,1)
Input (prueba,(1,1,1)) }
(de,(1,1)) }
(palabras,(1,1)) }
Fco. Javier Lahoz Sevilla
¿Que es Hadoop?
• MapReduce
esto es una prueba prueba de contar palabras palabras de una prueba
Map Maquina 1
(esto,1) (es,1) (una,1)
(prueba,1)
Maquina 2
(prueba,1) (de,1)
(contar,1) (palabras,1)
Maquina 3
(palabras,1) (de,1) (un,1)
(fichero,1)
Maquina 1 (es,1) (esto,1)
(prueba,1) (prueba,1) (prueba,1)
Maquina 2
(contar,1) (de,1) (de,1)
Maquina 3
(palabras,1) (palabras,1) (una,1) (una,1)
Reduce Maquina 1
(contar,1) (prueba,3) (es,1) (esto,1)
Maquina 3
(de,2) (palabras,2) (una,2)
Input
Maquina 2
Fco. Javier Lahoz Sevilla
Suffle&Sort
¿Que es Hadoop?
• MapReduce
esto es una prueba prueba de contar palabras palabras de una prueba
Map Maquina 1
(esto,1) (es,1) (una,1)
(prueba,1)
Maquina 2
(prueba,1) (de,1)
(contar,1) (palabras,1)
Maquina 3
(palabras,1) (de,1) (un,1)
(fichero,1)
Maquina 1
(es,1) (esto,1)
(prueba,1) (prueba,1) (prueba,1)
Maquina 2
(contar,1) (de,1) (de,1)
Maquina 3
(palabras,1) (palabras,1) (una,1) (una,1)
Reduce Maquina 1
(contar,1) (prueba,3) (es,1) (esto,1)
Maquina 3
(de,2) (palabras,2) (una,2)
Input (contar,1) (de,2)
(prueba,3) (palabras,2) (una,2) (es,1) (esto,1)
Output
Maquina 2
Fco. Javier Lahoz Sevilla
Suffle&Sort
Introducción a Hadoop. Instalación en AWS
• Parte 1. Introducción a Hadoop – ¿Que es Hadoop? – Versiones de Hadoop – GesCón y monitorización de un cluster – Configuración de un cluster – Dimensionamiento de un cluster – Principales tecnologías del ecosistema de Hadoop – Principales distribuciones de Hadoop
• Parte 2. Instalación en AWS – Instalación y configuración en una instancia EC2 – Escalar a varias instancias y configurar el cluster – Probar el correcto funcionamiento del cluster
Versiones de Hadoop
• Existen diversas versiones que se pueden agrupar en Hadoop 1 y Hadoop 2 según los demonios que las componen.
• Ambas versiones Cenen demonios similares para el almacenamiento de los datos: – NameNode, corre en el nodo maestro para gesConar los metadatos de los ficheros y
el nivel de réplica de cada fichero, además de coordinar el acceso de los clientes a los Datanodes y el estado de éstos.
– Secundary NameNode, es un demonio opcional encargado de fusionar periodicamente la imagen del filesystem con el log de edicion para que no crezca excesivamente.
– DataNode, demonio encargado del almacenamiento de los bloques realizando las operaciones de lectura y escritura que corre en los nodos esclavos o workers.
La principal diferencia entre ambas versiones es que Hadoop 2 incluye federación del NameNode.
Fco. Javier Lahoz Sevilla
Versiones de Hadoop
• Para el procesamiento de los datos sí existen diferentes demonios según la versión: – Hadoop 1:
• JobTracker, corre en el nodo maestro siendo responsable de hablar con el Namenode para determinar la localización de los datos y enviará trabajos a los nodos esclavos que conCenen los datos o están próximos a éstos.
• TaskTracker, se ejecuta en los nodos esclavos para lanzar tareas MapReduce sobre los datos que conCene (para la fase Map) o que se le mueven (para la fase Reduce)
– Hadoop 2: Definido como MRv2 o YARN (Yet Another Resource NegoCaCor) • ResourceManager, hacer las veces de JobTracker gesConando y planificando
los recursos del cluster. • NodeManager, sería equivalente al TaskTracker con la responsabilidad de los
contenedores, monitorizar el uso de recursos y reportarlos al ResourceManager.
Fco. Javier Lahoz Sevilla
Versiones de Hadoop
Maestro
NameNode SecundaryNN
JobTracker
Esclavo
DataNode
TaskTracker
Esclavo
DataNode
TaskTracker
Maestro
NameNode SecundaryNN
ResourceManager
Esclavo
DataNode
NodeManager
Esclavo
DataNode
NodeManager
Hadoop 1 Hadoop 2
Fco. Javier Lahoz Sevilla
Introducción a Hadoop. Instalación en AWS
• Parte 1. Introducción a Hadoop – ¿Que es Hadoop? – Versiones de Hadoop – GesCón y monitorización de un cluster – Configuración de un cluster – Dimensionamiento de un cluster – Principales tecnologías del ecosistema de Hadoop – Principales distribuciones de Hadoop
• Parte 2. Instalación en AWS – Instalación y configuración en una instancia EC2 – Escalar a varias instancias y configurar el cluster – Probar el correcto funcionamiento del cluster
GesCón y monitorización de un cluster
Se puede gesConar e interactuar con un cluster de hadoop a través de lineas de comanados o con las interfaz Web. • Líneas de comandos:
– Administración à hdfs dfsadmin <comando> • -‐report: proporciona estadísCcas e información básica del sistema de archivos. • -‐safemode get|leave: el sistema de mantenimiento de modo seguro. El modo
seguro es un estado en el que NameNode o bien no acepta cambios en el espacio de nombres (sólo lectura) o bien no se replica o eliminar bloques.
– Namenode à hdfs namenode <comando> • -‐format: formatea el NameNode perdiendo todos los datos. Arranca el
NameNode lo formatea y lo para.
– Check Filesystem à hdfs fsck <comando> • -‐locaCons: muestra las localizaciones de cada bloque y el estado del Filesystem.
Es úCl cuando hay bloques sobre replicados o bajo replicados • -‐delete: elimina bloques corruptos.
Fco. Javier Lahoz Sevilla
GesCón y monitorización de un cluster
– Interacción à hdfs dfs <comando> • -‐copyFromLocal|-‐put <fichero local> <uri>: copia el fichero local a la uri
especificada. Si no se indica uri se copiará por defecto en la ruta del usuario que ejecuta la instrucción.
• -‐copyToLocal|-‐get <uri> <desCno local>: copia un fichero de la uri especificada al directorio local indicado. Si no se especifica desCno local lo copialra en el path donde se ejecuta la instrucción
• -‐ls <uri>: lista los ficheros de la uri indicada. Si no se indica nada tomará por defecto la uri del usuario que ejecuta la instrucción.
• -‐mkdir <paths>: crea el directorio especificado. • -‐rm <uri>: elimina el fichero espcificado en la uri. • -‐rmr <uri>: elimina recursivamente la uri indicada. • -‐cat <uri>: copia las rutas de origen a la salida estándar. • -‐text <path>: obCene un archivo y lo muestra en formato texto. Es úCl para
hacer un merge de varios ficheros, por ejemplo: hadoop fs -‐text <files> | hadoop fs -‐put -‐ targetFilename.txt
– Ejecucion de aplicación à hadoop jar <comandos> • <libreria> <clase> <directorio entrada> <directorio salida>
Fco. Javier Lahoz Sevilla
GesCón y monitorización de un cluster
• Interfaces Web: – NameNode à hjp://<master>:50070
Fco. Javier Lahoz Sevilla
GesCón y monitorización de un cluster
– Resource Manager à hjp://<master>:8088
Fco. Javier Lahoz Sevilla
Introducción a Hadoop. Instalación en AWS
• Parte 1. Introducción a Hadoop – ¿Que es Hadoop? – Versiones de Hadoop – GesCón y monitorización de un cluster – Configuración de un cluster – Dimensionamiento de un cluster – Principales tecnologías del ecosistema de Hadoop – Principales distribuciones de Hadoop
• Parte 2. Instalación en AWS – Instalación y configuración en una instancia EC2 – Escalar a varias instancias y configurar el cluster – Probar el correcto funcionamiento del cluster
Configuración de un cluster
Hadoop Cene varios ficheros de configuración que se podrán ajustar según las necesidades de funcionalidad y procesamiento. • core-‐site.xml:
<configuraCon> <property> <name>fs.default.name</name> <value>hdfs://<master>:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/path/to/tmp</value> </property> </configuraCon>
Fco. Javier Lahoz Sevilla
Configuración de un cluster
• hdfs-‐site.xml: <configuraCon> <property> <name>dfs.replicaCon</name> <value>1</value> </property> <property> <name>dfs.name.dir</name> <value>file:/path/to/namenode</value> </property> <property> <name>dfs.data.dir</name> <value>file:/path/to/datanode</value> </property> </configuraCon>
Fco. Javier Lahoz Sevilla
Configuración de un cluster
• mapred-‐site.xml: <configuraCon> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuraCon>
• yarn-‐site.xml: <configuraCon> <property> <name>yarn.nodemanager.aux-‐services</name> <value>mapreduce_shuffle</value> </property> </configuraCon>
Fco. Javier Lahoz Sevilla
Introducción a Hadoop. Instalación en AWS
• Parte 1. Introducción a Hadoop – ¿Que es Hadoop? – Versiones de Hadoop – GesCón y monitorización de un cluster – Configuración de un cluster – Dimensionamiento de un cluster – Principales tecnologías del ecosistema de Hadoop – Principales distribuciones de Hadoop
• Parte 2. Instalación en AWS – Instalación y configuración en una instancia EC2 – Escalar a varias instancias y configurar el cluster – Probar el correcto funcionamiento del cluster
Dimensionamiento de un cluster
Cuando se contempla el despliegue de un cluster en producción es necesario conocer la infraestructura necesaria, en concreto se deben tener en cuenta las siguientes consideraciones para los servidores esclavos(Datanodes): • Número de máquinas. El número total de máquinas dependerá,
principalmente, del espacio a almacenar. Si se usa un nivel de replica 3 el total de los TB se deberá dividir entre 3 .
Por ejemplo para almacenar 5TB/mes a lo largo de un año con servidorer de 6 discos de 7TB se necesitaria: • HDFS neto: 1 (año) x 12 (meses) x 5TB (mes) = 60 TB • Capacidad discos necesaria: 60TB x 3 (Replicas) = 180TB • Capacidad discos servidor: 6 (discos) * 7TB = 42TB • Numero servidores: 180/ 42 = 4,2 à 5 Servidores
Fco. Javier Lahoz Sevilla
Dimensionamiento de un cluster
• CPU. Normalmente se suele usar CPUs de gama media ya que el cuello de botella suele estar en la Red y los Discos duros.
• Memoria. Como se trabaja con java si es importante dimensionar bien la memoria dependiendo de los procesos que se desplieguen (HBase, Spark,…). Las tareas MapReduce necesitarán entre 1GB y 4GB por tarea (número de tareas = 1,5 x numero de cores por CPU)
• Discos Duros. Seleccionar discos de gama media. Mejor elegir más
discos de menos capacidad que discos más grandes.
Fco. Javier Lahoz Sevilla
Dimensionamiento de un cluster
La configuración para los nodos Maestros será más críCca ya que es SPOF (si no Cene Alta Disponibilidad). Las recomendaciones podrían ser: • Introducir redundancia. Disco en RAID 1, doble fuente de
alimentación, varias tarjetas Ethernet.
• Memoria. Dependerá del tamaño del cluster y de los procesos desplegados.
• Independizar procesos. Separar los procesos NameNode y ResourceManager si se espera una carga alta.
La Red es algo muy importante (se genera mucho tráfico dentro del cluster) por eso es recomendable que esté aislada del resto de la empresa.
Fco. Javier Lahoz Sevilla
Introducción a Hadoop. Instalación en AWS
• Parte 1. Introducción a Hadoop – ¿Que es Hadoop? – Versiones de Hadoop – GesCón y monitorización de un cluster – Configuración de un cluster – Dimensionamiento de un cluster – Principales tecnologías del ecosistema de Hadoop – Principales distribuciones de Hadoop
• Parte 2. Instalación en AWS – Instalación y configuración en una instancia EC2 – Escalar a varias instancias y configurar el cluster – Probar el correcto funcionamiento del cluster
Tecnologías del Ecosistema
Vamos a ver brevemente las principales tecnologías del ecosistema de Hadoop: • Hive • Pig • Flume • Sqoop • HBase • Mahout • Spark
Fco. Javier Lahoz Sevilla
Hive es us sistema de almacen de datos (data warehouse) capaz de seleccionar y gesConar grandes conjuntos de datos almacenados
en HDFS.
Tecnologías del Ecosistema
Vamos a ver brevemente las principales tecnologías del ecosistema de Hadoop: • Hive • Pig • Flume • Sqoop • HBase • Mahout • Spark
Fco. Javier Lahoz Sevilla
Pig es una plataforma para el análisis de grandes conjuntos de datos que consiste en un lenguaje de alto nivel para expresar los programas de análisis de datos.
Tecnologías del Ecosistema
Vamos a ver brevemente las principales tecnologías del ecosistema de Hadoop: • Hive • Pig • Flume • Sqoop • HBase • Mahout • Spark
Fco. Javier Lahoz Sevilla
Flume es un servicio distribuido, fiable y disponible para la
ingesCón, agregación y volcado de grandes canCdades de datos y eventos. Tiene una arquitectura simple y flexible basado en el streaming flujos de datos.
Tecnologías del Ecosistema
Vamos a ver brevemente las principales tecnologías del ecosistema de Hadoop: • Hive • Pig • Flume • Sqoop • HBase • Mahout • Spark
Fco. Javier Lahoz Sevilla
Sqoop es una herramienta diseñada para transferir datos de manera eficiente a entre Hadoop y almacenes de datos estructurados como bases de datos relacionales.
Tecnologías del Ecosistema
Vamos a ver brevemente las principales tecnologías del ecosistema de Hadoop: • Hive • Pig • Flume • Sqoop • HBase • Mahout • Spark
Fco. Javier Lahoz Sevilla
HBase es una distribución de almacén de datos escalable que se ejecuta sobre HDFS. Se engloba dentro de las bases de datos
NoSQL de Cpo BigTable (columnar de Cpo clave-‐valor).
Tecnologías del Ecosistema
Vamos a ver brevemente las principales tecnologías del ecosistema de Hadoop: • Hive • Pig • Flume • Sqoop • HBase • Mahout • Spark
Fco. Javier Lahoz Sevilla
Mahout es una librería escalable de algoritmos de aprendizaje
automáCco, implementados sobre Hadoop para analizar los datos
almacenados en HDFS uClizando el paradigma MapReduce.
Tecnologías del Ecosistema
Vamos a ver brevemente las principales tecnologías del ecosistema de Hadoop: • Hive • Pig • Flume • Sqoop • HBase • Mahout • Spark
Fco. Javier Lahoz Sevilla
Spark es un marco de procesamiento de datos en paralelo que complementa
Hadoop para hacer más fácil el desarrollo de aplicaciones rápidas y unificadas que combinan batch, streaming, y análisis interacCvos
de todos sus datos.
Introducción a Hadoop. Instalación en AWS
• Parte 1. Introducción a Hadoop – ¿Que es Hadoop? – Versiones de Hadoop – GesCón y monitorización de un cluster – Configuración de un cluster – Dimensionamiento de un cluster – Principales tecnologías del ecosistema de Hadoop – Principales distribuciones de Hadoop
• Parte 2. Instalación en AWS – Instalación y configuración en una instancia EC2 – Escalar a varias instancias y configurar el cluster – Probar el correcto funcionamiento del cluster
Distribuciones de Hadoop
Existen en el mercado varias distribuciones comerciales que empaquetan las disCntas tecnologías del ecosistema de Hadoop, entre ellas, las que hemos visto anteriormente. Además proprorcionan herramientas para: • Monitorizar y administrar un cluster • GesConar la seguridad • Gobierno de los datos
A conCnuación veremos alguna de las principales distribuciones:
Fco. Javier Lahoz Sevilla
Introducción a Hadoop. Instalación en AWS
• Parte 1. Introducción a Hadoop – ¿Que es Hadoop? – Versiones de Hadoop – GesCón y monitorización de un cluster – Configuración de un cluster – Dimensionamiento de un cluster – Principales tecnologías del ecosistema de Hadoop – Principales distribuciones de Hadoop
• Parte 2. Instalación en AWS – Instalación y configuración en una instancia EC2 – Escalar a varias instancias y configurar el cluster – Probar el correcto funcionamiento del cluster
Instalación y configuración
En primer lugar vamos a ver la consola de Amazon Web Services. • Nos conectamos a AWS
– console.aws.amazon.com
• Creamos un grupo de seguridad
• Generamos un Key Par y le restringimos los permisos chmod 400 CURSO_HADOOP.pem
Fco. Javier Lahoz Sevilla
Instalación y configuración
Una vez creado el key pair podemos arrancar una instancia y conectarnos a ella: • Creamos una instancia y nos connectarnos
ssh -‐i CURSO_HADOOP.pem ubuntu@<PUBLIC_EC2_IP> – Si da error regeneramos las claves: ssh-‐keygen -‐R <PUBLIC_EC2_IP>
• Configurar el nombre de Host sudo -‐i vi /etc/host <PRIVATE_EC2_IP> hadoop.master
• Generamos las claves para conectarnos por ssh ssh-‐keygen -‐t rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys
Fco. Javier Lahoz Sevilla
Instalación y configuración
ConCnuamos instalando java y hadoop. • Installar java:
sudo apt-‐get update sudo apt-‐get install openjdk-‐7-‐jre
• Descargar y desempaquetar Hadoop: wget hjp://}p.cixug.es/apache/hadoop/common/hadoop-‐2.6.0/hadoop-‐2.6.0.tar.gz tar -‐xvf hadoop-‐2.6.0.tar.gz
• Crear link: ln -‐s hadoop-‐2.6.0 hadoop
Fco. Javier Lahoz Sevilla
Instalación y configuración
• Configuramos las variables de entorno en el fichero, $HOME/.bashrc export JAVA_HOME=/usr/lib/jvm/java-‐1.7.0-‐openjdk-‐amd64 export HADOOP_HOME=/home/ubuntu/hadoop export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/naCve export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$JAVA_HOME/bin Y los cargamos: source ~/.bashrc
Fco. Javier Lahoz Sevilla
Instalación y configuración
Ahora hay que empezar a configurar la instalación. • Configurar el entorno de hadoop
– Editar fichero $HADOOP_HOME/etc/hadoop/core-‐site.xml <property> <name>fs.default.name</name> <value>hdfs://hadoop.master:9000</value> </property>
– Renombrar el fichero $HADOOP_HOME/etc/hadoop/mapred-‐site.xml.template a mapred-‐site.xml <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
Fco. Javier Lahoz Sevilla
Instalación y configuración
– Editar fichero $HADOOP_HOME/etc/hadoop/hdfs-‐site.xml <property> <name>dfs.replicaCon</name> <value>1</value> </property> <property> <name>dfs.name.dir</name> <value>file:/opt/hadoop/dfs/namenode</value> </property> <property> <name>dfs.data.dir</name> <value>file:/opt/hadoop/dfs/datanode</value> </property>
Fco. Javier Lahoz Sevilla
Instalación y configuración
– Editar fichero $HADOOP_HOME/etc/hadoop/yarn-‐site.xml <property> <name>yarn.nodemanager.aux-‐services</name> <value>mapreduce_shuffle</value> </property>
– Editamos el fichero de esclavos $HADOOP_HOME/etc/hadoop/slaves y susCtuimos localhost por hadoop.master (nombre de la máquina)
– Editamos el fichero de entorno $HADOOP_HOME/etc/hadoop/hadoop-‐env.sh y cambiamos la variable JAVA_HOME export JAVA_HOME=/usr/lib/jvm/java-‐1.7.0-‐openjdk-‐amd64
Fco. Javier Lahoz Sevilla
Instalación y configuración
Cuando ya están los ficheros configurados podemos crear los directorios del NN y DN para, finalmente, formatear el NN. • Crear directorios para en namenode y el datanode, y le
cambiamos el owner: sudo mkdir -‐p /opt/hadoop/dfs/namenode sudo mkdir -‐p /opt/hadoop/dfs/datanode sudo chown -‐R ubuntu:ubuntu /opt/hadoop/dfs/datanode sudo chown -‐R ubuntu:ubuntu /opt/hadoop/dfs/namenode
• Formateamos el namenode: hdfs namenode -‐format
Fco. Javier Lahoz Sevilla
Instalación y configuración
Ahora ya estamos en disposición de arrancar Hadoop: • Arrancamos DFS y YARN:
– $HADOOP_HOME/sbin/start-‐dfs.sh – $HADOOP_HOME/sbin/start-‐yarn.sh
• Testeamos HDFS y YARN – Cargamos un fichero – Ejecutamos un job MapReduce
• Si queremos usar las interfaces Web habrá que abrir tuneles: ssh -‐i CURSO_HADOOP.pem ubuntu@<PUBLIC_EC2_IP> -‐L 50070:<PRIVATE_EC2_IP>:50070 -‐L 8088:<PRIVATE_EC2_IP>:8088
Fco. Javier Lahoz Sevilla
Introducción a Hadoop. Instalación en AWS
• Parte 1. Introducción a Hadoop – ¿Que es Hadoop? – Versiones de Hadoop – GesCón y monitorización de un cluster – Configuración de un cluster – Dimensionamiento de un cluster – Principales tecnologías del ecosistema de Hadoop – Principales distribuciones de Hadoop
• Parte 2. Instalación en AWS – Instalación y configuración en una instancia EC2 – Escalar a varias instancias y configurar el cluster – Probar el correcto funcionamiento del cluster
Instalación y configuración Cluster
Una vez que ya está funcionando Hadoop en una instancia ya podemos ajustar la configuración para arrancar un cluster. • Paramos Hadoop
• Borramos los file system del DN y NN
• Cambiamos configuración – Cambiamos en nivel de replica a 3 en el fichero hdfs-‐site.xml – Añadimos el framework yarn en el fichero mapred-‐site.xml
Fco. Javier Lahoz Sevilla
Instalación y configuración Cluster
– Añadimos configuración en el fichero yarn-‐site.xml: <property> <name>yarn.nodemanager.aux-‐services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>hadoop.master:8030</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>hadoop.master:8032</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>hadoop.master:8088</value> </property> <property> <name>yarn.resourcemanager.resource-‐tracker.address</name> <value>hadoop.master:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>hadoop.master:8033</value> </property>
Fco. Javier Lahoz Sevilla
Instalación y configuración Cluster
Una vez que ya está correctamente configurado Hadoop podemos arracar las instancias del cluster.
• Primero creamos una AMI
• Cambiamos la seguridad del grupo para que las máquinas se puedan conectar al NameNode y el RersourceManager.
• Arrancamos las instancias EC2 a parCr del AMI guardada
Fco. Javier Lahoz Sevilla
Instalación y configuración Cluster
Una vez que ya están levantadas las instancias podemos arrancarlo y comprobar en las interfaces Web que todas las instancias están incluidas en el cluster. • Añadimos las IP privadas de las instancias EC2 en el fichero
slaves
• Formateamos el namenode
• Arrancamos el Cluster – Primero arrancamos DFS – A conCnuación arrancamos YARN
• Nos conectamos al interfaz Web: – Localhost:50070 para revisar el Datanode – Localhost:8088 para revisar el ResourceManager
Fco. Javier Lahoz Sevilla
Introducción a Hadoop. Instalación en AWS
• Parte 1. Introducción a Hadoop – ¿Que es Hadoop? – Versiones de Hadoop – GesCón y monitorización de un cluster – Configuración de un cluster – Dimensionamiento de un cluster – Principales tecnologías del ecosistema de Hadoop – Principales distribuciones de Hadoop
• Parte 2. Instalación en AWS – Instalación y configuración en una instancia EC2 – Escalar a varias instancias y configurar el cluster – Probar el correcto funcionamiento del cluster
Probar el cluster
Una vez que ya está configurado Hadoop ya estamos en disposición de arrancarlo y probarlo.
• Cargamos un fichero
• Ejecutamos el WordCount
• Revisamos las consolas Web – Namenode – Resoure Manager
Fco. Javier Lahoz Sevilla