BigDataFundamentals Semana1 Taller


1MB Größe 18 Downloads 63 vistas
Big Data Fundamentals Javier Di Deco Sampedro

Ejercicios

HUE – Hadoop User Experience Instalar una distribución de Hadoop para cada uno iba a ser excesivamente complejo. HUE es una aplicación web que permite acceder y usar Hadoop desde cualquier navegador. Permite explorar HDFS, los trabajos que están corriendo, lanzar consultas Hive, trabajos MapReduce, modificar Hive MetaStore, etc.

Ofrece una Demo online que corre contra una distribución de Hadoop ya preinstalada en la nube, a la que podéis acceder si queréis para las preguntas que lo permitan. No obstante, para las prácticas de esta sesión usaremos preferentemente una distribución hospedada en el ordenador del profesor, ya que la anterior no permite escribir.

Petición Como vamos a compartir la instalación de Hadoop, os pido por favor que seáis prudentes y no ejecutéis nada más allá de lo que se indica en el guión de la práctica. Si tenéis dudas antes de hacer algo acerca de si puede sobrecargar el sistema o afectar a otros usuarios, por favor preguntad.

Sed pacientes con la ejecución de las cosas, algunas consultas pueden tardar unos minutos. No obstante, si algo tarda demasiado, preguntad o cambiad a la otra plataforma.

Conexión a la plataforma Accesos: Consultar IP Javier Di Deco Puerto: 8888 Usuario: userXX * Password: userXX

*XX se asignarán los números en la clase Página de ayuda: http://demo.gethue.com/help/

Alternativa online (sin escritura): http://demo.gethue.com/ Usuario: demo Password: demo

Explora la interfaz -Echa un vistazo a los diferentes elementos que conforman los menús y elementos de la barra superior (desplegando aquellos que lo permitan) y anota los que conozcas y/o creas que vas a tener que utilizar durante la práctica.

Explora los ficheros de HDFS Pista: no confundir con “Mis Documentos” de HUE, que tiene el símbolo de una casa y se utiliza para guardar ficheros especiales que no están en la distribución HDFS subyacente. -Anota la ruta en la que estás situado/a justo al acceder al explorador de archivos. El último trozo de dicha ruta debería corresponderse con tu nombre de usuario. En cualquier momento puedes volver a esta carpeta pulsando el botón “Inicio” que aparece justo a la izquierda de la ruta (y que también tiene un símbolo de casa pero no confundir con el de “Mis Documentos). -Ve al directorio raíz (/) y anota las carpetas que veas -Utiliza el buscador dentro de la carpeta /user para filtrar y mostrar solamente la carpeta “hive”. Anota la ruta en la que se encuentra, así como el nombre del usuario propietario de la misma y el grupo al que pertenece. Dentro de dicha carpeta deberías ver otra carpeta llamada “warehouse”, aquí es donde se guardan las tablas de datos que Hive gestiona.

Ficheros en HDFS En HDFS existen diferentes formatos para codificar los datos: • Text: comprensible para humanos, sin compresión, por ejemplo CSV • Avro: orientado a filas, buena compresión • Parquet: orientado a columnas, eficiente en disco al consultar columnas concretas • Otros…

En /user/hive/warehouse accede a la carpeta categories (si estás en “local”) o customers (si estás online) -Selecciona el fichero que hay dentro y pega un “pantallazo” del resumen (summary) del mismo.

-Descarga el fichero a tu ordenador, ábrelo con un editor de texto (notepad++ o bloc de notas, por ejemplo). ¿Es completamente legible o aparecen caracteres raros? Anota los 4 primeros caracteres del fichero. ¿Qué significan?

Listar tablas, descargar resultado Abre el panel Query Editors > Hive Ejecutando la consulta “show tables;” obtendrás un listado de todas las tablas existentes. En la pestaña de resultados podrás verlo en formato de tabla y justo a la izquierda verás varios símbolos, siendo el último de ellos para descargar dicho resultado. -Descarga el resultado de la consulta de listar tablas y cópialo aquí.

Obs: esta es una consulta muy sencilla y directa, por lo que no se genera ninguna traducción a un trabajo MapReduce. Si vas al Job Browser no debería aparecer ningún resultado (si estás en local) o de los que veas (si estás en la demo online) ninguno corresponderá a un “show tables;”

Consultar tabla Sigue en el panel Query Editors > Hive Vamos a trabajar ahora sobre la tabla customers. -Ejecuta la consulta “describe customers;”, que sirve para listar los campos de una tabla, y anota cuántos hay y cuál es el tipo de dato mayoritario (si lo hay).

-Ejecuta ahora la consulta “select * from customers;”, que nos devolverá el contenido completo de la tabla. -En la pestaña de resultados, pulsando el tercero de los botones de la izquierda aparece un panel que te permite filtrar por columnas. Selecciona únicamente las dos primeras (id y name). -El segundo de los botones de la izquierda permite representar un gráfico directamente sobre los resultados de una consulta. Elige el customers.name para el eje X y el customers.id para el eje Y y pega aquí un pantallazo del gráfico resultante.

Trabajo MapReduce asociado a una consulta I Sigue en el panel Query Editors > Hive -Ejecuta la consulta “select count(*) from customers;” y anota el resultado. Si estás en “local” seguramente te toque esperar unos dos minutos hasta que finalice. En la demo online, como seguramente ya esté “en caché” la consulta, te devolverá el resultado inmediatamente.

En cualquier caso, ve al panel de Job Browser. Aquí están todos los trabajos (principalmente MapReduce, aunque en la demo online quizá veas algún otro como Spark) que se están ejecutando, se han ejecutado o se han intentado ejecutar. -Pega un pantallazo de la barra que aparece en la parte superior derecha con los 4 posibles estados de un trabajo y sus correspondientes colores asociados.

Trabajo MapReduce asociado a una consulta II Sigue en el panel Job Browser Si estás en local, deberías ver una única entrada en la tabla, es tu única elección. Si estás online elige una que sea SELECT (de tipo MAPREDUCE) y que haya finalizado con éxito. -Anota el ID del Job elegido

Ahora pincha en dicho ID, que te llevará a una pantalla donde hay información detallada del Job. -Explora las diferentes pestañas y anota cuántas tareas asociadas tiene y de qué tipo son. Pincha en una de las tareas. Verás que tiene, a su vez, intentos de ejecución (sólo aparece uno si ha funcionado a la primera). Pincha en uno de los intentos. -Pega un pantallazo del detalle del intento con las pestaña “Registros” seleccionada y, dentro de ella “syslog” seleccionada. (Arriba a la izquierda deberías ver los IDs de intento, tarea y job, y el estado).

Ahí está el máximo detalle de todo lo que ha ido haciendo el sistema para llevar a cabo los trabajos y tareas que respondían a la consulta que se lanzó.

Impala Ve a Query Editors > Impala

-Ejecuta la consulta “select count(*) from web_logs;” y anota el resultado.

-Ve al Job Browser. ¿Echas en falta algo? (Pista: aunque estés en la versión online, se produciría el mismo efecto en el Job Browser esté o no cacheada la consulta)

-Comenta brevemente las principales diferencias entre Hive e Impala y para qué tipo de usos crees que es más idóneo uno u otro.

Crear tabla I Obs: Este ejercicio solamente lo podrás hacer en “local” ya que requiere escritura. -Descarga el fichero /user/user0/example.csv -Crea una carpeta llamada “example” dentro del directorio de tu usuario: /user/userXX -Sube el fichero example a dicho directorio -En la siguiente transparencia encontrarás el código SQL para crear la tabla. Sustituye las XX por tu código de usuario (hay 3 apariciones, dos arriba en el nombre de la tabla y una abajo tras LOCATION) -Ve al editor de queries de Hive, haz un show tables en el que se vea el nombre de tu tabla recién creada y un describe de los campos de la misma y pega aquí los pantallazos:

Crear tabla II DROP TABLE IF EXISTS example-userXX; CREATE EXTERNAL TABLE example-userXX ( street string, city string, zip int, state string, beds int, baths int, sq__ft int, sale_date string, type string, price int, latitude float, longitude float ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS TEXTFILE LOCATION '/user/userXX/example' tblproperties("skip.header.line.count"="1");

Visualizaciones Aprovechando el motor de búsqueda Apache Solr, se pueden indizar colecciones de datos para llevar a cabo tanto búsquedas como representaciones eficientes en tablas y gráficos interactivos y relacionados por filtros comunes. -Ve a Buscar > Twitter, que es un panel preconfigurado sobre un conjunto de Tweets.

Explóralo y trata de entender todo lo que se está representando. -Juega con los filtros y cuando tenga un aspecto que te guste, pega aquí uno o varios pantallazos de lo que ves y describe los filtros que has aplicado y cómo afectan a la representación.

Extra*** Si tienes unos minutos más, te animo a que crees tu propio panel de reporte (Buscar -> +Panel) sobre alguno de los casos de ejemplo ya indizados, por ejemplo el mismo twitter_demo sobre el que estaba construido el panel que has visto el ejercicio anterior. Juega y configúralo como quieras. Incluye aquí uno o varios pantallazos de su aspecto, así como una pequeña explicación/interpretación de lo que has representado y cómo lo has hecho. -----------Esta es para nota ;) - Independientemente de si pudiste crear o no la tabla example, ¿qué implicaciones tiene la palabra clave “EXTERNAL” que aparecía en el código SQL de creación de la tabla? -----------Si te sigue sobrando tiempo, realiza alguna consulta adicional y alguna representación gráfica de la tabla “example” si estás en local. Si estás en la demo online, elige la tabla que quieras. -Pega algún pantallazo y una breve descripción de lo que has hecho.