Logo Studenta

Practica HDFS YARN

¡Estudia con miles de materiales!

Vista previa del material en texto

Arquitectura de Big Data, Manejo de HDFS, Hive y Yarn 
 
El objetivo de esta práctica es aprender un manejo básico de ficheros en HDFS y cómo interactúan las 
herramientas de HDFS, Hive y Yarn en el entorno Hadoop 
Esta práctica hay que realizarla obligatoriamente en el cluster de ICAI 
Ejercicios 
La presentación de la resolución de los ejercicios se puede realizar de dos maneras: 
1. Elaborar un documento donde se incorpore un pantallazo con la demostración de que el 
ejercicio se ha resuelto correctamente 
2. Elaborar uno o más videos con la resolución de los mismos (para manejar en intercambio de los 
videos lo más sencillo es subirlo a una plataforma tipo youtube y poner el link en el documento) 
FUNDAMENTAL, sin esto tendréis que repetir la práctica: Debéis cada uno personalizar el prompt de 
Linux con el siguiente comando: 
PS1="Vuestro nombre, \D{%Y%m%d-%H:%M:%S}>" 
Y ese prompt debe ser visible en todos los pantallazos para que certifiquéis que es vuestra línea de 
comandos 
Por ejemplo: 
 
En caso de que por algún motivo no podáis realizar alguno de los ejercicios, se valorará muy muy 
positivamente que documentéis de una manera concisa qué es lo que está ocurriendo en vuestro 
sistema (logs, pruebas) y vuestro análisis de esa información 
 
Ejercicio 1 (5 puntos) 
 Crear en HDFS el subdirectorio pruebas dentro del home de vuestro usuario (el home del 
usuario es /user/mbdXX) y mostrar que ese directorio existe 
 Cambiar los permisos de ese directorio para que solo el usuario pueda leer, escribir y ejecutar en 
el mismo y mostrarlo con esos permisos 
 Copiar el fichero local /home/shared/GaiaSource.csv.gz en el directorio anterior, 
mostrar que el fichero existe en HDFS (este fichero proviene de la base de datos Gaia de la ESA y 
contiene parte de un catálogo de estrellas) 
 Comprobar que el fichero tiene tres réplicas (comando hdfs fsck, hay que emplear los 
parámetros -files -blocks -locations) 
 Comprobar que está formado por dos bloques y que la suma de esos dos bloques tiene el 
tamaño total del fichero 
 Generar una tabla en Word donde se muestre cada uno de los nodos (192.168.80.34 a 
192.168.80.37) y si contiene cada uno de los bloques o no los contiene 
 ¿Hay algún caso en el que si se caen dos nodos simultáneamente perdemos acceso al fichero? 
Listar esas combinaciones si existen 
 ¿Hay algún caso en el que si se caen tres nodos simultáneamente NO perdemos acceso al 
fichero? Listar esas combinaciones si existen 
 Cambiar el fichero de réplica 3 a replica 2 y mostrar el cambio 
 Borrar el fichero GaiaSource.csv.gz 
 Volver a copiar el fichero, pero esta vez empleando la opción: 
 hdfs dfs -D dfs.blocksize=33554432 
 Listar el número de bloques que tiene el fichero y su tamaño, ¿Cuántos son ahora? ¿La suma 
total de bytes coincide con el total del fichero? ¿Qué hemos conseguido al introducir ese 
parámetro? 
 Cambiar el fichero a replica 2 y generar una tabla como la anterior con los bloques y el nodo en 
el que están almacenados 
 ¿Hay algún caso en que si se cae un solo nodo podemos seguir teniendo el fichero completo? 
 
Ejercicio 2 (3 puntos) 
 Crear otro subdirectorio tabla1 en HDFS, en el home del usuario y copiar en este directorio el 
fichero /home/shared/data-champions-league.csv (contiene datos de los partidos de la 
Europa Champions Leage hasta 2016) 
 Entrar en hive con el siguiente comando (cambiando <user> por mbdXX): 
beeline -u jdbc:hive2://192.168.80.31:10000/ -n <user> -p "" 
 Crear la tabla de datos con los partidos, para ello hay que usar como base el fichero 
/opt/practica-arquitectura/create_table_champions.sql y modificar el nombre de la tabla y 
poner el directorio tabla1 con su path completo en la cláusula LOCATION 
 Ejecutar la siguiente sentencia sql dentro del prompt de beeline: select count(*) from 
<nombre-tabla> ; ¿Cuántos registros salen? 
 Comprimir en local el fichero gzip data-champions-league.csv, copiar en el mismo 
directorio (tabla1) el fichero comprimido, comprobar que ambos ficheros existen y volver a 
ejecutar la consulta anterior, ¿Cuántos registros obtenemos ahora? ¿Qué está pasando? 
 Apuntar la línea dentro del log de salida que comienza por Stage-Stage- , se encuentra la 
cuarta empezando por abajo. 
Lanzar la consulta (sustituyendo el nombre de la tabla) (esta consulta mostraría el número de 
partidos jugados por un equipo en total) 
select count(*) cuenta, equipo 
from ( select team_1 equipo from <tabla> 
union all select team_2 equipo from <tabla> ) dat 
group by equipo 
order by cuenta ; 
 ¿Cuantas líneas Stage-Stage- aparecen ahora? ¿A qué puede deberse? 
 ¿Cuál es el equipo qué más partidos ha jugado? ¿Cuál es el registro con más ocurrencias? ¿Por 
qué aparece esa información extraña? 
 Conectamos a la URL http://master02.bigdata.alumnos.upcont.es:8088/, en esa URL buscamos 
nuestros trabajos, hay que buscar el tiempo de ejecución para las consultas realizadas en los 
pasos anteriores 
 
Ejercicio 3 (2 puntos) 
 
Para los siguientes pasos hay que tener en cuenta donde están almacenados los datos de cada tabla: 
Tabla Directorio con los datos 
data_gaia_t1 /datos/practica-arquitectura/tabla-1 
data_gaia_t2 /datos/practica-arquitectura/tabla-2 
data_gaia_t3 /datos/practica-arquitectura/tabla-3 
 
 Entrar en hive con el comando (cambiando <user> por mbdXX): 
beeline -u jdbc:hive2://192.168.80.31:10000/ -n <user> -p "" 
 
 Ejecutar las consultas: 
select count(*), sum(solution_id) from data_gaia_t1 ; 
 
select count(*), sum(solution_id) from data_gaia_t2 ; 
 
select count(*), sum(solution_id) from data_gaia_t3 ; 
 
select count(*), sum(solution_id), 
sum(ra),sum(ra_error),sum(dec),sum(dec_error),sum(parallax), 
sum(parallax_error),sum(parallax_over_error),sum(pmra), 
sum(pmra_error),sum(pmdec),sum(pmdec_error),sum(ra_dec_corr), 
sum(ra_parallax_corr),sum(ra_pmra_corr),sum(ra_pmdec_corr), 
sum(dec_parallax_corr),sum(dec_pmra_corr),sum(dec_pmdec_corr), 
sum(parallax_pmra_corr),sum(parallax_pmdec_corr),sum(pmra_pmdec_corr), 
sum(astrometric_n_obs_al),sum(astrometric_n_obs_ac), 
sum(astrometric_n_good_obs_al),sum(astrometric_n_bad_obs_al) 
from data_gaia_t1 ; 
 
 Con los logs de cada una de las ejecuciones, mirando en los directorios origen y en la URL 
http://master02.bigdata.alumnos.upcont.es:8088/ (esta URL contiene el resultado da las tareas 
ejecutadas empleando YARN) elaborar una tabla con los siguientes campos para cada una de las 
cuatro consultas: 
o el tamaño ocupado por los datos en el directorio de origen (en bytes) 
o formato en que están almacenados los datos 
o tiempo total de ejecución de la consulta (en segundos) 
o tiempo de ejecución de los map (en milisegundos) 
o tiempo de ejecución de los reduce(en milisegundos) 
o volumen de bytes leídos desde HDFS (en bytes) 
o La URL que aparece en el log de la ejecución de hive en la entrada que incluye: The 
url to track the job 
 Comentar las diferencias entre la primera y la segunda consulta 
 Comentar las diferencias entre los resultados de la primera consulta y la cuarta, ambas atacan a 
la misma tabla, pero la primera solo agrega un campo mientras que la segunda lo hace sobre 
muchos mas 
 ¿Por qué no funciona la tercera consulta?

Continuar navegando

Materiales relacionados