Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Práctico de Hadoop (1)
Práctico de Hadoop (1)
Introducción 2
Acceso SSH 2
Probando comandos básicos de linux 2
¿Dónde estamos? 2
¿Qué hay dónde estoy parado? 2
¿Cómo nos movemos hacia otro directorio? 2
Comenzando con Hadoop 3
Servicios 3
Interfaz gráfica 4
YARN 5
Componentes 5
Funcionamiento 5
Interfaz gráfica 6
Interactuando con HDFS 7
Trabajando con HDFS 8
Tarea 11
Ejercicio 1: 11
Ejercicio 2: 11
Introducción
IMPORTANTE! Iniciar el ambiente creado en Azure y recordar detenerlo al terminar de
trabajar.
Acceso SSH
Conectarse al ambiente mediante SSH. Para esto se puede usar Azure Cloud Shell
(https://portal.azure.com/#cloudshell), tiene la ventaja de que se puede utilizar desde
cualquier navegador web y también permite la carga/descarga de archivos.
¿Dónde estamos?
>pwd
/home/ort
Ejemplo
>cd hadoop
Por ejemplo:
Ya chequeado el correcto estado del servicio hadoop, otro comando útil a tener en cuenta
es “jps”, para ver que procesos de java están activos con los id de cada uno.
Como se puede observar, ya están corriendo los procesos que se corresponden a hdfs:
NameNode, SecondaryNameNode y DataNode.
Interfaz gráfica
Tenemos disponible una interfaz gráfica de Hadoop. Para poder ingresar, en un explorador
de internet escribimos http://hdfs.bigdata.ort.edu.uy. Deberíamos ver lo siguiente:
Si vamos a Utilities > Browse the file system, accedemos a una interfaz gráfica donde
podemos ver todos los archivos que están subidos al cluster.
YARN
Yet Another Resource Negotiator es un distribuidor de datos y gestor de recursos
distribuidos. Forma parte de Hadoop desde la versión 2, y abstrae la gestión de recursos de
los procesos MapReduce lo que implica una asignación de recursos más efectiva. YARN
soporta varios frameworks de procesamiento distribuido, como MapReduce v2, Tez, Impala,
Spark, etc..
Componentes
Funcionamiento
En Memory total vamos a ver los 8GB de memoria que le dimos a la máquina virtual. A
medida que agreguemos más máquinas al clúster, vamos a tener más memoria disponible,
sumando la memoria de todos los nodos.
En el Menú lateral podemos ver todos los estados que puede tener un trabajo de
mapreduce. Si por ejemplo hay uno que está corriendo y queremos observar su proceso,
podemos ir a running a ver como va evolucionando.
Si vamos al Scheduler, podemos ver la cola de tareas que se van a ejecutar. Por defecto
tenemos la Queue default dentro de root.
Interactuando con HDFS
Para interactuar con el sistema de ficheros de Hadoop se utiliza el comando dfs, el cual
requiere de otro argumento (empezando con un guión) el cual será uno de los comandos
Linux para interactuar con el shell (consultar la lista de comandos en la documentación
oficial).
hdfs dfs -comandosLinux
Por ejemplo, para mostrar todos los archivos que tenemos en el raíz haríamos:
Creo dentro del hdfs una carpeta a la cual voy a llamar taller. Para eso ejecuto:
hdfs dfs -mkdir /taller
Ahora puedo ver en la interfaz gráfica de Hadoop que existe ese nuevo directorio.
También puedo ejecutar el siguiente comando por consola para ver que hay dentro del
HDFS:
hdfs dfs -ls /
Ahora voy a subir el NOTICE.txt de la máquina virtual, al HDFS que está desplegado en esa
misma máquina, cambiando el nombre del archivo en el proceso
Preguntas a entregar: ¿De qué dos formas podemos ver ese archivo? ¿Qué factor de
replicación tiene?
ls $HADOOP_HOME/share/hadoop/mapreduce/
Vamos a realizar un word count sobre el archivo test.txt que dejamos en el HDFS.
El comando es el siguiente (es una sola línea):
$HADOOP_HOME/bin/yarn jar
$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar
wordcount /taller/test.txt /outmapreduce
Sí rápidamente vamos al resource manager, podemos llegar a ver en el scheduler las tareas
que se están ejecutando.
Entramos a la carpeta y vamos a ver dos cosas. Primero un archivo de SUCCESS que
indica si el proceso de mapreduce se ejecutó o no correctamente. Y luego vamos a ver que
hay una única partición del archivo, por lo que solo tengo un bloque de archivo. Ambos
archivos tienen un factor de replicación de 1.
Si queremos bajar ese, lo copiamos a la VM desde hdfs con el comando (creando
previamente la carpeta ‘out’ local):
El archivo baja a nuestra máquina. Podemos darle una extensión, por ejemplo .txt. O dejarlo
así. Abrimos con un editor de texto y podemos ver la cantidad de palabras que hay en el
archivo test.txt, y cuántas veces están presentes. El split está hecho con el espacio, por lo
tanto puede aparecer la misma palabra contada como una palabra distinta.
Para hacer Mapreduce, ya no es necesario hacer una aplicación de este tipo. Con HIve,
podemos convertir las sentencias de HiveQL, de sintaxis similar a SQL, en instrucciones de
Mapreduce. Con Spark, podemos convertir sentencias con sintaxis SQL, o scripts de Scala
o Python en instrucciones de Mapreduce.
Tarea
Armar un archivo .doc o .pdf contestando las preguntas que aparecen en negrita.
Además de los ejercicios propuestos en este apartado.
Ejercicio 1:
¿Sabes qué realiza cada uno de los siguientes comandos?
Ejercicio 2:
● Crear Directorios (donde dice num_estudiante poner su número de estudiante):
/Practico_1/num_estudiante/books/
/Practico_1/num_estudiante/output_mapreduce
● Cargar archivos desde el filesystem del sistema a Hadoop. Para eso debe utilizar el
comando copyFromLocal visto en esta práctica. Debe cargarlos al directorio que
creó:
/Practico_1/num_estudiante/books/
El siguiente comando debería mostrarle que realizó los pasos anteriores de forma
corrercta:
hdfs dfs -ls /Practico_1/num_estudiante/books
● Ejecutar mapreduce para hacer un word count sobre los tres libros, utilizando el
siguiente comando. Recuerde que donde dice num_estudiante, va su número de
estudiante.
$HADOOP_HOME/bin/yarn jar
$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar
wordcount /Practico_1/num_estudiante/books/*.txt
/Practico_1/num_estudiante/output_mapreduce/global_output
Adjunte al pdf una captura de pantalla donde aparezca el output del mapreduce en el
browser.
Ejemplo:
Entregar el archivo en aulas con nombre del estudiante, grupo al cuál pertenece, y nombres
y apellidos.
Gracias.