1. Fco.
Javier
Lahoz
Sevilla
Data
Analy6cs
con
Hadoop
Data
Analy6cs
Data
Value
Data
Ingest
2. Agenda
Fco.
Javier
Lahoz
Sevilla
– ¿Qué
es
Hadoop?
– Técnicas
para
capturar
datos
– Análisis
de
datos
con
Hadoop
– Casos
prác6cos
3. 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
4. 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
5. Técnicas
para
capturar
datos
Se
pueden
capturar
datos
de
dis6nta
6pología:
Fco.
Javier
Lahoz
Sevilla
6. Técnicas
para
capturar
datos
Se
pueden
capturar
datos
de
dis6nta
6pología:
Fco.
Javier
Lahoz
Sevilla
7. Técnicas
para
capturar
datos
Se
pueden
capturar
datos
de
dis6nta
6pología:
Fco.
Javier
Lahoz
Sevilla
8. Técnicas
para
capturar
datos
Se
pueden
capturar
datos
de
dis6nta
6pología:
Fco.
Javier
Lahoz
Sevilla
9. Técnicas
para
capturar
datos
Para
poder
ingestar
este
variedad
de
datos
surge
la
necesidad
de
dis6ntas
herramientas:
Fco.
Javier
Lahoz
Sevilla
10. 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
11. 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
12. 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
13.
La
arquitectura
de
Flume
está
basada
en
agentes:
Agente
Técnicas
para
capturar
datos
-‐
Flume
Fco.
Javier
Lahoz
Sevilla
Source
Sink
Channel
Datos
Datos
14. 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
15. 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
16. 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
17. 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
18. 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
19. 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
20. 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
21. 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
22. 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
23. 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
24. 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
25. 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
26. 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
27. 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
28. 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
29. 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
30. 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
31. 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
32. Casos
prác6cos
Fco.
Javier
Lahoz
Sevilla
Ø Análisis
de
Tweets
con
Hive
Ø Procesamiento
de
datos
mediante
Pig
33. ¿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
34. Q
&
A
Thank
you
for
your
aUen6on!!
Fco.
Javier
Lahoz
Sevilla
35. Fco.
Javier
Lahoz
Sevilla
Data
Analy6cs
con
Hadoop
Data
Analy6cs
Data
Value
Data
Ingest