openanalytics 04/2015 - data analytics con hadoop
TRANSCRIPT
Fco. Javier Lahoz Sevilla
Data Analy6cs con Hadoop
Data Analy6cs
Data Value
Data Ingest
Agenda
Fco. Javier Lahoz Sevilla
– ¿Qué es Hadoop?
– Técnicas para capturar datos
– Análisis de datos con Hadoop
– Casos prác6cos
Myself
Ø Licenciado en CC. Matemá6cas e Ingeniero Técnico en Informá6ca de Ges6ón.
Ø Empecé a trabajar en IT hace más de 14 años.
Ø Actualmente trabajo en el área de arquitectura de una en6dad financiera como Arquitecto Big Data diseñando soluciones en entornos Big Data.
Ø Instructor de Hadoop.
Ø Soy un entusiasta de la analí6ca de los datos en con6nua formación en técnicas de Machine Learning y Data Mining.
Fco. Javier Lahoz Sevilla hUps://www.linkedin.com/in/fcojavierlahoz
What’s that?
Hadoop es un sistema de código abierto que se u6liza 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 tolerante 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
Técnicas para capturar datos
Se pueden capturar datos de dis6nta 6pología:
Fco. Javier Lahoz Sevilla
Técnicas para capturar datos
Se pueden capturar datos de dis6nta 6pología:
Fco. Javier Lahoz Sevilla
Técnicas para capturar datos
Se pueden capturar datos de dis6nta 6pología:
Fco. Javier Lahoz Sevilla
Técnicas para capturar datos
Se pueden capturar datos de dis6nta 6pología:
Fco. Javier Lahoz Sevilla
Técnicas para capturar datos
Para poder ingestar este variedad de datos surge la necesidad de dis6ntas herramientas:
Fco. Javier Lahoz Sevilla
Técnicas para capturar datos
Para poder ingestar este variedad de datos surge la necesidad de dis6ntas herramientas:
• Flume, es una herramienta distribuida, fiable y escalable para la recolección, agregación y carga de grandes can6dades de datos.
Fco. Javier Lahoz Sevilla
Técnicas para capturar datos
Para poder ingestar este variedad de datos surge la necesidad de dis6ntas herramientas:
• Flume, es una herramienta distribuida, fiable y escalable para la recolección, agregación y carga de grandes can6dades de datos.
• Sqoop, está diseñada para transferir datos de manera eficiente y escalable de bases de datos relacionales a Hadoop.
Fco. Javier Lahoz Sevilla
Técnicas para capturar datos -‐ Flume
Flume 6ene una arquitectura simple y flexible basada en el streaming de datos.
Es tolerante a fallos y escalable.
Se basa en una configuración descentralizada basada en ficheros planos.
Fco. Javier Lahoz Sevilla
La arquitectura de Flume está basada en agentes:
Agente
Técnicas para capturar datos -‐ Flume
Fco. Javier Lahoz Sevilla
Source Sink
Channel
Datos Datos
Técnicas para capturar datos -‐ Sqoop
Con Sqoop se puede importar datos de bases de datos relacionales a HDFS, Hive o HBase.
Algunas bases de datos serían: – Oracle – MySQL – Teradata – DB2 – ….
También se pueden exportar ficheros de HDFS a bases de datos relacionales.
Fco. Javier Lahoz Sevilla
Técnicas para capturar datos -‐ Sqoop
Caracterís6cas de Sqoop: • Sqoop puede importar una tabla o una esquema de base
de datos.
• También se pueden filtrar los datos de una tabla, por ejemplo, para cargar incrementales basados en una fecha de alta o modificación.
• Permite proyectar una tabla recuperando sólo los campos requeridos.
Fco. Javier Lahoz Sevilla
Análisis de datos con Hadoop
Cuando ya tenemos datos cargados en nuestro Cluster de Hadoop existen dis6ntas herramientas para analizar los datos según el lenguaje a u6lizar. También existen herramientas OpenSource y comerciales que, mediante workflows, nos permiten procesar y analizar los datos.
Fco. Javier Lahoz Sevilla
Análisis de datos con Hadoop
Existen diversas tecnologías para analizar los datos según los lenguajes comentados anteriormente. Por ejemplo: • MapReduce, framework desarrollado en Java para
procesamiento batch.
Fco. Javier Lahoz Sevilla
Análisis de datos con Hadoop
Existen diversas tecnologías para analizar los datos según los lenguajes comentados anteriormente. Por ejemplo: • MapReduce, framework desarrollado en Java para
procesamiento batch. • Spark, para procesamiento paralelo en memoria. Se puede
implementar en Scala, Python y Java, permi6endo analizar datos a través de SparkSQL y SparkStreaming, entre otros.
Fco. Javier Lahoz Sevilla
Análisis de datos con Hadoop
Existen diversas tecnologías para analizar los datos según los lenguajes comentados anteriormente. Por ejemplo: • MapReduce, framework desarrollado en Java para
procesamiento batch. • Spark, para procesamiento paralelo en memoria. Se puede
implementar en Scala, Python y Java, permi6endo analizar datos a través de SparkSQL y SparkStreaming, entre otros.
• Hive, abstraccion por encima de Hadoop para ejecutar procesos MapReduce mediante un interfaz SQL.
Fco. Javier Lahoz Sevilla
Análisis de datos con Hadoop
Existen diversas tecnologías para analizar los datos según los lenguajes comentados anteriormente. Por ejemplo: • MapReduce, framework desarrollado en Java para
procesamiento batch. • Spark, para procesamiento paralelo en memoria. Se puede
implementar en Scala, Python y Java, permi6endo analizar datos a través de SparkSQL y SparkStreaming, entre otros.
• Hive, abstraccion por encima de Hadoop para ejecutar procesos MapReduce mediante un interfaz SQL.
• Pig, lenguaje de alto nivel para el procesamiento de procesos MapReduce mediante flujos de datos.
Fco. Javier Lahoz Sevilla
Análisis de datos con Hadoop -‐ Hive
Hive es un sistema de almacen de datos (data warehouse) capaz de seleccionar y ges6onar grandes conjuntos de datos almacenados en HDFS. Se implementa en SQL (HiveQL).
Fco. Javier Lahoz Sevilla
Análisis de datos con Hadoop -‐ Hive
Hive es un sistema de almacen de datos (data warehouse) capaz de seleccionar y ges6onar grandes conjuntos de datos almacenados en HDFS. Se implementa en SQL (HiveQL). Hive NO es una base de datos y usa los recursos de Hadoop para almacenar y procesar.
Sólo implementa un subconjunto del estandard SQL. Tiene latencias grandes (por el uso de MapReduce).
Fco. Javier Lahoz Sevilla
Análisis de datos con Hadoop -‐ Hive
Casos de Uso: • Almacenamiento histórico ges6onado con par6ciones, por ejemplo con fecha (año, mes, día).
• Para repor6ng tradicional o avanzado a través de herramientas de BI.
• Para analí6ca avanzada mediante paquetes estadís6cos, como por ejemplo, R.
Fco. Javier Lahoz Sevilla
Análisis de datos con Hadoop -‐ Hive
Arquitectura de Hive: • Hive usa un schema “on read” lo que implica que no se validan los datos cuando se cargan o se insertan y pueden no ser correctos cuando se consultan devolviendo valores NULL.
• Los datos se almacenan en ficheros dentro del HDFS en el siguiente path (por defecto):
/user/hive/warehouse/<db_name>.db/<db_table>/
Fco. Javier Lahoz Sevilla
Análisis de datos con Hadoop -‐ Hive
• Los metadatos (estructuras) se almacenan en el Metastore que está compuesto por un servicio y un repositorio. Hay varios 6pos de metastore: – Metastore embebido – Metastore local – Metastore remoto:
Fco. Javier Lahoz Sevilla
Metastore MySQL
Hive Cli
BI Tools HiveServer2
Análisis de datos con Hadoop -‐ Pig
Pig es una plataforma para el análisis de grandes conjuntos de datos que consiste en un lenguaje de alto nivel para expresar programas de análisis de datos.
En Pig se procesa la información como un flujo de datos encadenando las salidas y entradas de las operaciones.
Las operaciones realizadas en Pig se transforman en procesos MapReduce que se ejecutan sobre el Cluster.
Fco. Javier Lahoz Sevilla
Análisis de datos con Hadoop -‐ Pig
Arquitectura de Pig:
Pig es una capa que está por encima de Hadoop. Los flujos de datos se procesarán con MapReduce leyendo y escribiendo en HDFS u otras fuentes (MongoDB, Cassandra, HBase)
Fco. Javier Lahoz Sevilla
Pig Scrip6ng
MapReduce
HDFS
Análisis de datos con Hadoop -‐ Pig
Flujo de ejecución con Pig: Operaciones Relacionales
Fco. Javier Lahoz Sevilla
Datos Datos Load Data
Transform Data
Store Data
Análisis de datos con Hadoop -‐ Pig
Flujo de ejecución con Pig: Operaciones Relacionales
A = load ‘test.csv’ using PigStorage(‘,’);
Fco. Javier Lahoz Sevilla
Datos Datos Load Data
Transform Data
Store Data
Análisis de datos con Hadoop -‐ Pig
Flujo de ejecución con Pig: Operaciones Relacionales
A = load ‘test.csv’ using PigStorage(‘,’); B = foreach A generate $0 as id;
Fco. Javier Lahoz Sevilla
Datos Datos Load Data
Transform Data
Store Data
Análisis de datos con Hadoop -‐ Pig
Flujo de ejecución con Pig: Operaciones Relacionales
A = load ‘test.csv’ using PigStorage(‘,’); B = foreach A generate $0 as id; store B into ‘result.csv’
Fco. Javier Lahoz Sevilla
Datos Datos Load Data
Transform Data
Store Data
Casos prác6cos
Fco. Javier Lahoz Sevilla
Ø Análisis de Tweets con Hive
Ø Procesamiento de datos mediante Pig
¿Ganas de más?
Ø Cursos online en la plataforma SoyData.net (BigData4Success):
Fco. Javier Lahoz Sevilla
ü Introducción a Hadoop e instalación en AWS ü Inges6ón y análisis de datos con casos prác6cos desplegados en AWS
Cupón de promoción: PROMOLANZAMIENTO
Q & A
Thank you for your
aUen6on!!
Fco. Javier Lahoz Sevilla
Fco. Javier Lahoz Sevilla
Data Analy6cs con Hadoop
Data Analy6cs
Data Value
Data Ingest