BigDataFundamentals Semana1 Taller no asistentes


2MB Größe 20 Downloads 93 vistas
Big Data Fundamentals Carlos Roda & Bert Otte

Fundamentos Big Data & Ecosistema Hadoop Taller Semana 1

Big Data y La Transformación Digital de Empresas Transformación Digital de las Empresas

Variedad

Infraestructura Veracidad

Velocidad

BIG DATA

Cultura Roles (CDO?) Interno/Externo

Valor

Gestión Datos

Volumen

Toma Decisiones basada en Datos

Hadoop: HDFS + MapReduce H(adoop) D(istributed) F(ile) S(ystem)

1

Bloque 1

DATOS

MapReduce

Input (HDFS)

1 K1

Bloque 2

Name Node (Cliente)

Map

Name Node (Backup)

K1 K1

K2

Reduce

K1

Bloque 3 2 K1

“Latidos”

Datos Redundantes

Output (HDFS)

2 Map

K2 K2

K2

3

Reduce

K2

3 K1

Map K2

Data Node

Data Node

Data Node

1

2

3

Shuffle Uso de “Commodity Hardware”

Hadoop Job

Ejemplo MapReduce: Contar Palabras

Ecosistema (Zoológico) Hadoop

Pig

YARN (Core Hadoop)

HDFS (Core Hadoop) Workflow

Coordinación

Flume

Sqoop

Spark

Storm

Procesamiento

HBase

ZooKeeper

Oozie

MapReduce

Scripting

Impala

Hive

Gestión Recursos

Almacenamiento

Hoy tocaremos los siguientes componentes…

Pig

YARN (Core Hadoop)

HDFS (Core Hadoop) Workflow

Coordinación

Flume

Sqoop

Spark

Storm

Procesamiento

HBase

ZooKeeper

Oozie

MapReduce

Scripting

Impala

Hive

Gestión Recursos

Almacenamiento

NO PRESENTES Estos ejercicios son para las personas que NO pudieron atender al taller

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.

Conexión a la plataforma Accesos: 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 “customers” -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? (En caso de duda, buscar en Internet…)

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. En la demo online, como seguramente ya esté “en caché” la consulta, te devolverá el resultado inmediatamente (Si estás en “local” seguramente te toque esperar unos dos minutos hasta que finalice). 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 “Logs” 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.

Extra*** Si te sobra tiempo, podemos intentar hacer un poco más de data mining sobre la tabla “web_logs” que acabamos de ver en el último ejercicio. Desde el editor de queries de Impala os propongo explorar los datos con las siguientes queries: • DESCRIBE web_logs; • SELECT * FROM web_logs LIMIT 10; Luego, trata de hacer las queries necesarias para contestar las siguientes preguntas: 1. ¿De cuantos países únicos (columna “country_name”) se han recogido datos en la tabla web_logs? Pista: proponemos usar “SELECT”, “DISTINCT”, “FROM” 2. ¿De que país hay más entradas en la tabla? ¿De cuantas entradas estamos hablando? Pista: proponemos usar “SELECT”, “count()”, “FROM”, “GROUP BY”, “ORDER BY” 3. ¿Finalmente, cuantos web_logs provienen de un sistema operativo de Linux? Pista: usa la columna “os family”; ademas, proponemos usar “SELECT”, count(), ”FROM”, “WHERE”