2. Introducción a Apache Spark | 2
OBJETIVOS
Obtener una visión general de Apache
Hadoop y su amplio y complejo ecosistema
3. Introducción a Apache Spark | 3
AGENDA
Big Data
Apache Hadoop
Ecosistema de Hadoop
Hadoop 2.0
4. Introducción a Apache Spark | 4
CARACTERÍSTICAS - VOLUMEN
Capacidad de almacenar una gran cantidad de datos
El volumen de datos se incrementa exponencialmente:
(44x de 2009 a 2020)
Big Data
5. Introducción a Apache Spark | 5
CARACTERÍSTICAS - VOLUMEN
Capacidad de almacenar una gran cantidad de datos
El volumen de datos se incrementa exponencialmente:
(44x de 2009 a 2020)
Big Data
6. Introducción a Apache Spark | 6
CARACTERÍSTICAS - VARIEDAD
Capacidad de combinar datos en los diferentes formatos que se
generan (textos, imágenes, vídeos, audios, logs, json, xml, pdf, bbdd,
emails, etc.)
Big Data
7. Introducción a Apache Spark | 7
CARACTERÍSTICAS - VARIEDAD
Capacidad de combinar datos en los diferentes formatos que se
generan (textos, imágenes, vídeos, audios, logs, json, xml, pdf, bbdd,
emails, etc.)
Big Data
8. Introducción a Apache Spark | 8
CARACTERÍSTICAS - VARIEDAD
Capacidad de combinar datos en los diferentes formatos que se
generan (textos, imágenes, vídeos, audios, logs, json, xml, pdf, bbdd,
emails, etc.)
Big Data
http://www.slideshare.net/dellenterprise/maximizing-return-on-information
9. Introducción a Apache Spark | 9
CARACTERÍSTICAS - VARIEDAD
Big Data
http://www.slideshare.net/franmod/tendencias-storage
10. Introducción a Apache Spark | 10
CARACTERÍSTICAS - VELOCIDAD
Capacidad para poder capturar, almacenar y analizar los datos a la
mayor velocidad posible
Big Data
11. Introducción a Apache Spark | 11
CARACTERÍSTICAS - VERACIDAD
Capacidad para tratar con datos desfasados, inconsistentes,
incompletos, inciertos o ambiguos
Big Data
http://www.tylervigen.com/spurious-correlations
14. Introducción a Apache Spark | 14
SOLUCION TRADICIONAL
La meta es tener una máquina cada vez más poderosa (memoria,
procesador, etc.)
Big Data
15. Introducción a Apache Spark | 15
SOLUCION TRADICIONAL
La meta es tener una máquina cada vez más poderosa (memoria,
procesador, etc.)
Escalabilidad limitada
Alto coste
Big Data
16. Introducción a Apache Spark | 16
COMPUTACIÓN DISTRIBUIDA TRADICIONAL
La meta es que muchas máquinas se puedan encargar de realizar un
solo proceso
Big Data
17. Introducción a Apache Spark | 17
COMPUTACIÓN DISTRIBUIDA TRADICIONAL
La meta es que muchas máquinas se puedan encargar de realizar un
solo proceso
Hardware muy caro tolerante a fallos
Programación compleja
Escalabilidad limitada
Big Data
18. Introducción a Apache Spark | 18
AGENDA
Big Data
Apache Hadoop
Ecosistema de Hadoop
Hadoop 2.0
19. Introducción a Apache Spark | 19
HISTORIA DE HADOOP
Hadoop y su ecosistema
2002 2003 2004 2005 2006 2007 2008 2009 2010
Dog Cutting y Mike Carafella
empiezan a trabajar en Nutch
Google publica detalles
sobre GFS y MapReduce
Doug Cutting añade
DFS y MapReduce a
Nutch
Yahoo! Contrata a Doug
Hadoop se sale de Nutch
Facebook crea Hive – el
soporte SQL para Hadoop
Ordenación más rápida de 1 TB
3:30 minutos sobre 910 nodos
Ordenación más rápida de 1 TB
62 segundos sobre 1460 nodos
20. Introducción a Apache Spark | 20
¿QUÉ ES HADOOP?
Hadoop es un sistema para el almacenamiento y el procesamiento
distribuido de datos a gran escala
Hadoop proporciona dos componentes:
Almacenamiento de datos: HDFS
Procesamiento de datos: MapReduce
Hadoop y su ecosistema
21. Introducción a Apache Spark | 21
HDFS
HDFS es el sistema de archivos distribuido de Hadoop que se
encarga de almacenar los datos
Hadoop y su ecosistema
22. Introducción a Apache Spark | 22
HDFS
HDFS es el sistema de archivos distribuido de Hadoop que se
encarga de almacenar los datos
Hadoop y su ecosistema
Nodo
1
Nodo
2
Nodo
3
Nodo
4
Nodo servidor
Driver
23. Introducción a Apache Spark | 23
HDFS
HDFS es el sistema de archivos distribuido de Hadoop que se
encarga de almacenar los datos
Hadoop y su ecosistema
Nodo
1
Nodo
2
Nodo
3
Nodo
4
Datos.txt: B1, B2
Nodo servidor
Driver
Datos.txt
B1
B2
24. Introducción a Apache Spark | 24
HDFS
HDFS es el sistema de archivos distribuido de Hadoop que se
encarga de almacenar los datos
Hadoop y su ecosistema
Nodo
1
Nodo
2
Nodo
3
Nodo
4
Datos.txt: B1, B2
B1: Nodo 1
B2: Nodo 3
Nodo servidor
Driver
Datos.txt
B1
B2
B1 B2
25. Introducción a Apache Spark | 25
HDFS
HDFS es el sistema de archivos distribuido de Hadoop que se
encarga de almacenar los datos
Hadoop y su ecosistema
Nodo
1
Nodo
2
Nodo
3
Nodo
4
Datos.txt: B1, B2
B1: Nodo 1, Nodo 2
B2: Nodo 3, Nodo 4
Nodo servidor
Driver
Datos.txt
B1
B2
B1 B2B1 B2
26. Introducción a Apache Spark | 26
MAPREDUCE
MapReduce es el sistema que utiliza Hadoop para procesar los datos
en un clúster
Hadoop y su ecosistema
27. Introducción a Apache Spark | 27
MAPREDUCE - EJEMPLO
¿Cómo cuento el número de ocurrencias de cada palabra en un
documento?
Hadoop y su ecosistema
“Me llamo Lola
Me llamo Claudia
Me llamo Aimar
Pilar me llamo
Te gustan
los perros?”
{Me: 4,
llamo: 4,
Lola: 1,
Claudia: 1,
Aimar: 1,
Pilar: 1,
…}
28. Introducción a Apache Spark | 28
MAPREDUCE - EJEMPLO
Primera aproximación: Uso de una colección de claves / valores
Hadoop y su ecosistema
Colección Clave / Valor
29. Introducción a Apache Spark | 29
MAPREDUCE - EJEMPLO
Primera aproximación: Uso de una colección de claves / valores
Hadoop y su ecosistema
“Me llamo Lola
Me llamo Claudia
Me llamo Aimar
Pilar me llamo
¿Te gustan
los perros?”
{}
30. Introducción a Apache Spark | 30
MAPREDUCE - EJEMPLO
Primera aproximación: Uso de una colección de claves / valores
Hadoop y su ecosistema
“Me llamo Lola
Me llamo Claudia
Me llamo Aimar
Pilar me llamo
¿Te gustan
los perros?”
{Me: 1}
31. Introducción a Apache Spark | 31
MAPREDUCE - EJEMPLO
Primera aproximación: Uso de una colección de claves / valores
Hadoop y su ecosistema
“Me llamo Lola
Me llamo Claudia
Me llamo Aimar
Pilar me llamo
¿Te gustan
los perros?”
{Me: 1,
llamo: 1}
32. Introducción a Apache Spark | 32
MAPREDUCE - EJEMPLO
Primera aproximación: Uso de una hashtable
Hadoop y su ecosistema
“Me llamo Lola
Me llamo Claudia
Me llamo Aimar
Pilar me llamo
¿Te gustan
los perros?”
{Me: 1,
llamo: 1,
Lola: 1}
33. Introducción a Apache Spark | 33
MAPREDUCE - EJEMPLO
Primera aproximación: Uso de una hashtable
Hadoop y su ecosistema
“Me llamo Lola
Me llamo Claudia
Me llamo Aimar
Pilar me llamo
¿Te gustan
los perros?”
{Me: 2,
llamo: 1,
Lola: 1}
34. Introducción a Apache Spark | 34
MAPREDUCE - EJEMPLO
Pero .. ¿qué ocurre si el documento es realmente GRANDE?
Hadoop y su ecosistema
“Me llamo Lola
Me llamo Claudia
Me llamo Aimar
Pilar me llamo
¿Te gustan
los perros?
¿Y los caballos?
A mí me gustan
mucho los perros
Sobre todos los
caballitos de mar
¿Y a ti?”
{Me: 3,
Llamo:3,
Lola: 3
{Pilar:1,
Me: 1,
… }
{Y:1,
… }
{Sobre: 1,
… }
{Me: 5,
Llamo:3,
Lola: 3,
Pilar: 1
…
Máquinas 1-4
Máquina 5
35. Introducción a Apache Spark | 35
MAPREDUCE - EJEMPLO
Pero .. ¿qué ocurre si el documento es realmente GRANDE?
Hadoop y su ecosistema
“Me llamo Lola
Me llamo Claudia
Me llamo Aimar
Pilar me llamo
¿Te gustan
los perros?
¿Y los caballos?
A mí me gustan
mucho los perros
Sobre todos los
caballitos de mar
¿Y a ti?”
{Me: 3,
Llamo:3,
Lola: 3
{Pilar:1,
Me: 1,
… }
{Y:1,
… }
{Sobre: 1,
… }
{Me: 5,
Llamo:3,
Lola: 3,
Pilar: 1
…
Máquinas 1-4
Máquina 5
Los resultados tienen
que caber en una sola
máquina
36. Introducción a Apache Spark | 36
MAPREDUCE - EJEMPLO
Pero .. ¿qué ocurre si el documento es realmente GRANDE?
Hadoop y su ecosistema
“Me llamo Lola
Me llamo Claudia
Me llamo Aimar
Pilar me llamo
¿Te gustan
los perros?
¿Y los caballitos?
A mí me gustan
mucho los perros
Sobre todos los
caballitos de mar
¿Y a ti?”
{Me: 3,
Llamo:3,
Lola: 3
{Pilar:1,
Me: 1,
… }
{Y:1,
… }
{Sobre: 1,
… }
{A : 2,
Aimar : 1,
Claudia: 1}
Máquinas 1-4 Máquina 1-4
37. Introducción a Apache Spark | 37
MAPREDUCE - EJEMPLO
Pero .. ¿qué ocurre si el documento es realmente GRANDE?
Hadoop y su ecosistema
“Me llamo Lola
Me llamo Claudia
Me llamo Aimar
Pilar me llamo
¿Te gustan
los perros?
¿Y los caballitos?
A mí me gustan
mucho los perros
Sobre todos los
caballitos de mar
¿Y a ti?”
{Me: 3,
Llamo:3,
Lola: 3
{Pilar:1,
Me: 1,
… }
{Y:1,
… }
{Sobre: 1,
… }
{A : 2,
Aimar : 1,
Claudia: 1}
{Pilar: 1,
Sobre: 1,
…}
{Lola: 1,
Los: 4,…}
{mucho: 1,
mi: 1, …}
Máquinas 1-4 Máquina 1-4
38. Introducción a Apache Spark | 38
MAPREDUCE - EJEMPLO
Pero .. ¿qué ocurre si el documento es realmente GRANDE?
Hadoop y su ecosistema
“Me llamo Lola
Me llamo Claudia
Me llamo Aimar
Pilar me llamo
¿Te gustan
los perros?
¿Y los caballitos?
A mí me gustan
mucho los perros
Sobre todos los
caballitos de mar
¿Y a ti?”
{Me: 3,
Llamo:3,
Lola: 3
{Pilar:1,
Me: 1,
… }
{Y:1,
… }
{Sobre: 1,
… }
{A : 2,
Aimar : 1,
Claudia: 1}
{Pilar: 1,
Sobre: 1,
…}
{Lola: 1,
Los: 4,…}
{mucho: 1,
mi: 1, …}
Máquinas 1-4 Máquina 1-4
MAP REDUCE
40. Introducción a Apache Spark | 40
MAPREDUCE
Hadoop y su ecosistema
Nodo
1
Nodo
2
Nodo
3
Nodo
4
Nodo servidor
Driver
B1
Map
B2
Map Red.
41. Introducción a Apache Spark | 41
CARACTERÍSTICAS
Hadoop y su ecosistema
Característica Descripción
Automático Un trabajo se realiza completamente sin que sea
necesaria una intervención manual
Transparente Las tareas asignadas a un nodo que falla son retomadas
por otras tareas
Grácil Los fallos sólo representan una perdida proporcional en la
capacidad de proceso
Recuperable Esta capacidad se recupera cuando el componente es
reemplazado más tarde
Consistente El fallo no produce corrupción o resultados inválidos
42. Introducción a Apache Spark | 42
HADOOP / BASE DE DATOS TRADICIONAL
Hadoop y su ecosistema
BD Tradicional Hadoop
Tamaño Gigabytes Petabytes
Acceso Interactivo y Batch Batch
Actualización de la
información
Escritura/Lectura
(muchas veces)
Escritura - 1 vez /
Lectura
Estructura Estática Dinámica
Integridad Alta (ACID) Baja
Escalado Vertical Horizontal
Tiempo de respuesta Prácticamente
inmediato
Tiene latencia (proceso
Batch)
Acceso a la información Partes de información Toda la información
43. Introducción a Apache Spark | 43
AGENDA
Big Data
Apache Hadoop
Ecosistema de Hadoop
Evolución
Framework de procesamiento
distribuido
Sistema de ficheros distribuido
de Hadoop
44. Introducción a Apache Spark | 44
SQOOP
Hadoop y su ecosistema
PROCESOHDFS HDFS
SCOOP
DB
45. Introducción a Apache Spark | 45
FLUME
Hadoop y su ecosistema
PROCESOHDFS HDFS
FLUME
48. Introducción a Apache Spark | 48
ECOSISTEMA DE HADOOP
Hadoop y su ecosistema
Framework de procesamiento
distribuido
Sistema de ficheros distribuido
de Hadoop
Querys SQL
ODBC
53. Introducción a Apache Spark | 53
HBASE
Hadoop y su ecosistema
Framework de procesamiento
distribuido
Sistema de ficheros distribuido
de Hadoop
54. Introducción a Apache Spark | 54
HBASE
Hadoop y su ecosistema
Framework de procesamiento
distribuido
Sistema de ficheros distribuido
de Hadoop
Base de datos NoSQL
De tipo columnar
62. Introducción a Apache Spark | 62
AGENDA
Big Data
Apache Hadoop
Ecosistema de Hadoop
Hadoop 2.0
63. Introducción a Apache Spark | 63
EVOLUCIÓN DE HADOOP
Hadoop y su ecosistema
Hadoop 1
- Proceso Batch
- Un único motor de procesamiento
HDFS
(Sistema de ficheros de Hadoop)
MapReduce
(Gestor de Recursos del Clúster /
Procesamiento de datos Batch)
Hadoop 2 con YARN
- Proceso Batch
HDFS
(Sistema de ficheros de Hadoop)
YARN
(Gestor de Recursos del Clúster)
64. Introducción a Apache Spark | 64
EVOLUCIÓN DE HADOOP
Hadoop y su ecosistema
Hadoop 1
- Proceso Batch
- Un único motor de procesamiento
HDFS
(Sistema de ficheros de Hadoop)
MapReduce
(Gestor de Recursos del Clúster /
Procesamiento de datos Batch)
Hadoop 2 con YARN
- Proceso Batch, Interactivo
- Muchos motores
HDFS
(Sistema de ficheros de Hadoop)
YARN
(Gestor de Recursos del Clúster)
65. Introducción a Apache Spark | 65
EVOLUCIÓN DE HADOOP
Hadoop y su ecosistema
Hadoop 1
- Proceso Batch
- Un único motor de procesamiento
HDFS
(Sistema de ficheros de Hadoop)
MapReduce
(Gestor de Recursos del Clúster /
Procesamiento de datos Batch)
Hadoop 2 con YARN
- Batch, Interactivo, Tiempo Real
- Muchos motores
HDFS
(Sistema de ficheros de Hadoop)
YARN
(Gestor de Recursos del Clúster)
66. Introducción a Apache Spark | 66
EVOLUCIÓN DE HADOOP
Hadoop y su ecosistema
Hadoop 1
- Proceso Batch
- Un único motor de procesamiento
HDFS
(Sistema de ficheros de Hadoop)
MapReduce
(Gestor de Recursos del Clúster /
Procesamiento de datos Batch)
Hadoop 2 con YARN
- Batch, Interactivo, Tiempo Real
- Muchos motores
HDFS
(Sistema de ficheros de Hadoop)
YARN
(Gestor de Recursos del Clúster)
67. Muchas gracias
Centros de Competencia / Business Analytics
Daniel Villanueva Jiménez
dvillanuevaj@indra.es
Avda. de Bruselas 35
28108 Alcobendas,
Madrid España
T +34 91 480 50 00
F +34 91 480 50 80
www.indracompany.com