openanalytics 04/2015 - data analytics con hadoop

35
Fco. Javier Lahoz Sevilla Data Analy6cs con Hadoop Data Analy6cs Data Value Data Ingest

Upload: openanalytics-spain

Post on 20-Jul-2015

130 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: OpenAnalytics 04/2015 - Data Analytics con Hadoop

Fco.  Javier  Lahoz  Sevilla  

Data  Analy6cs  con  Hadoop  

Data  Analy6cs  

Data  Value  

Data  Ingest  

Page 2: OpenAnalytics 04/2015 - Data Analytics con Hadoop

Agenda  

Fco.  Javier  Lahoz  Sevilla  

 –  ¿Qué  es  Hadoop?  

–  Técnicas  para  capturar  datos  

– Análisis  de  datos  con  Hadoop  

–  Casos  prác6cos  

Page 3: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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    

Page 4: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 5: OpenAnalytics 04/2015 - Data Analytics con Hadoop

Técnicas  para  capturar  datos  

Se  pueden  capturar  datos  de  dis6nta  6pología:  

 

Fco.  Javier  Lahoz  Sevilla  

Page 6: OpenAnalytics 04/2015 - Data Analytics con Hadoop

Técnicas  para  capturar  datos  

Se  pueden  capturar  datos  de  dis6nta  6pología:  

 

Fco.  Javier  Lahoz  Sevilla  

Page 7: OpenAnalytics 04/2015 - Data Analytics con Hadoop

Técnicas  para  capturar  datos  

Se  pueden  capturar  datos  de  dis6nta  6pología:  

 

Fco.  Javier  Lahoz  Sevilla  

Page 8: OpenAnalytics 04/2015 - Data Analytics con Hadoop

Técnicas  para  capturar  datos  

Se  pueden  capturar  datos  de  dis6nta  6pología:  

 

Fco.  Javier  Lahoz  Sevilla  

Page 9: OpenAnalytics 04/2015 - Data Analytics con Hadoop

Técnicas  para  capturar  datos  

Para  poder  ingestar  este  variedad  de  datos  surge  la  necesidad  de  dis6ntas  herramientas:  

 

 

Fco.  Javier  Lahoz  Sevilla  

Page 10: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 11: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 12: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 13: OpenAnalytics 04/2015 - Data Analytics con Hadoop

 La  arquitectura  de  Flume  está  basada  en  agentes:      

 

 

Agente                      

Técnicas  para  capturar  datos  -­‐  Flume  

Fco.  Javier  Lahoz  Sevilla  

Source   Sink  

Channel  

Datos   Datos  

Page 14: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 15: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 16: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 17: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 18: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 19: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 20: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 21: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 22: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 23: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 24: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 25: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 26: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 27: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

         

Page 28: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 29: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 30: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 31: OpenAnalytics 04/2015 - Data Analytics con Hadoop

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  

Page 32: OpenAnalytics 04/2015 - Data Analytics con Hadoop

Casos  prác6cos  

Fco.  Javier  Lahoz  Sevilla  

Ø Análisis  de  Tweets  con  Hive  

Ø Procesamiento  de  datos  mediante  Pig    

   

 

 

   

 

   

 

 

 

 

Page 33: OpenAnalytics 04/2015 - Data Analytics con Hadoop

¿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  

   

Page 34: OpenAnalytics 04/2015 - Data Analytics con Hadoop

Q  &  A  

 Thank  you  for  your  

aUen6on!!  

   

Fco.  Javier  Lahoz  Sevilla  

Page 35: OpenAnalytics 04/2015 - Data Analytics con Hadoop

Fco.  Javier  Lahoz  Sevilla  

Data  Analy6cs  con  Hadoop  

Data  Analy6cs  

Data  Value  

Data  Ingest