Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Lightning-fast cluster computing
@javituiter
www.franciscojavierpulido.com www.exploradata.com
¿Quién soy?
¿?
¿?
¿?
Sobre mí
Graduado en
Ingeniera del
Software
Sobre mí
Graduado en
Ingeniera del
Software
Master en
Sistemas en
Ingeniería de
la Información
Sobre mí
Graduado en
Ingeniera del
Software
Especialista
en
Tecnologías
Big Data
Master en
Sistemas en
Ingeniería de
la In...
Sobre mí
Graduado en
Ingeniera del
Software
Master en
Sistemas en
Ingeniería de
la Información
Especialista
en
Tecnologías...
Sobre mí
Miembro del equipo
www.ExploraData.com
Sobre mí
¿Big Data = Hadoop?
Hadoop
Precio
Volumen
de datos
MapReduce
Primer Problema: La Persistencia
Segundo Problema: MapReduce
<k1, v1> -> map -> <k2, v2>
<k2, v2> -> combine -> <k2, v2>
<k2, v2> -> reduce -> <k3, v3>
Tercer Problema: Cálculos iterativos
MAP
COMBINE
REDUCE
Spark
· Es un motor para el procesamiento en memoria de grandes
volúmenes de datos.
· Se facilita el paradigma MapReduce (...
La “magia”:
Resilient Distributed Datasets
¿Qué es un RDD?
· Colecciones lógicas, inmutables y particionadas de los
registros a lo largo del clúster.
Datos
Paper RDD...
Beneficios
· La consistencia se vuelve más sencilla gracias a la
inmutabilidad.
· Tolerante a fallos: a través del “Lineag...
Operaciones sobre RDDs
Transformations Actions
Map
Filter
Sample
Union
groupByKey
reduceByKey
Join
Cache
…
Reduce
Collect
...
Características adicionales de
Spark
Análisis Interactivo de los Datos
· Exploración de datos mediante una Shell interactiva en Scala.
Real Time
Gran apoyo de la comunidad
Clústers en Spark
Arquitectura
Además…
· Spark es agnóstico.
· Si las operaciones no caben en memoria, pagina a disco.
· Aplicaciones aisladas: cada apli...
Algunos ejemplos
Variables
Broadcast:
Variables
Broadcast:
Accumulators:
Ejemplo 1: Paralelizar una colección
Ejemplo 1: Paralelizar una colección
Ejemplo 1: Paralelizar una colección
Creamos la
colleción
Ejemplo 1: Paralelizar una colección
Action
Ejemplo 2: Utilizar Datasets
Ejemplo 2: Utilizar Datasets
Cargar archivo en
variable
Ejemplo 2: Utilizar Datasets
Action
Ejemplo 3: Utilizar Datasets de HDFS
Ejemplo 3: Utilizar Datasets de HDFS
Cargar archivo de
HDFS en variable
Ejemplo 3: Utilizar Datasets de HDFS
Action
Ejemplo 4: MapReduce Wordcount
Ejemplo 4: MapReduce Wordcount
Leemos de HDFS
Ejemplo 4: MapReduce Wordcount
“MapReducimos”
el texto
Ejemplo 4: MapReduce Wordcount
Guardamos en
HDFS
Benchmarks
Lanzar una Query
https://amplab.cs.berkeley.edu/benchma
rk/
Agrupaciones
https://amplab.cs.berkeley.edu/benchma
rk/
Join
https://amplab.cs.berkeley.edu/benchma
rk/
Join
https://amplab.cs.berkeley.edu/benchma
rk/
Lanzar una Query desde un Script
https://amplab.cs.berkeley.edu/benchma
rk/
Lanzar una Query desde un Script
https://amplab.cs.berkeley.edu/benchma
rk/
¿Quién lo utiliza?
Migrando de Hadoop a Spark
https://blogs.apache.org/foundation/entry
/…
Ya lo tienen en producción
https://blogs.apache.org/foundation/entry
/…
Conclusiones
Conclusiones
· Spark está ahí fuera.
· Extremadamente sencillo de instalar para jugar con el >>
Para pasar a producción ha...
Gracias
@javituiter
www.franciscojavierpulido.com www.exploradata.com
Upcoming SlideShare
Loading in …5
×

OpenAnalytics Madrid 2014: Spark

1,130 views

Published on

Spark - una alternativa eficiente a Hadoop

Published in: Engineering
  • Be the first to comment

OpenAnalytics Madrid 2014: Spark

  1. 1. Lightning-fast cluster computing @javituiter www.franciscojavierpulido.com www.exploradata.com
  2. 2. ¿Quién soy? ¿? ¿? ¿?
  3. 3. Sobre mí Graduado en Ingeniera del Software
  4. 4. Sobre mí Graduado en Ingeniera del Software Master en Sistemas en Ingeniería de la Información
  5. 5. Sobre mí Graduado en Ingeniera del Software Especialista en Tecnologías Big Data Master en Sistemas en Ingeniería de la Información
  6. 6. Sobre mí Graduado en Ingeniera del Software Master en Sistemas en Ingeniería de la Información Especialista en Tecnologías Big Data Bloguero & Tuitero @javituiter www.franciscojavierpulido.com
  7. 7. Sobre mí Miembro del equipo www.ExploraData.com
  8. 8. Sobre mí
  9. 9. ¿Big Data = Hadoop?
  10. 10. Hadoop Precio Volumen de datos
  11. 11. MapReduce
  12. 12. Primer Problema: La Persistencia
  13. 13. Segundo Problema: MapReduce <k1, v1> -> map -> <k2, v2> <k2, v2> -> combine -> <k2, v2> <k2, v2> -> reduce -> <k3, v3>
  14. 14. Tercer Problema: Cálculos iterativos MAP COMBINE REDUCE
  15. 15. Spark · Es un motor para el procesamiento en memoria de grandes volúmenes de datos. · Se facilita el paradigma MapReduce (reduciendo costes y tiempos de ejecución) a gracias a los RDDs. · Tiene API´s para Scala, Java & Python.
  16. 16. La “magia”: Resilient Distributed Datasets
  17. 17. ¿Qué es un RDD? · Colecciones lógicas, inmutables y particionadas de los registros a lo largo del clúster. Datos Paper RDD 2011. Matei Zaharia…
  18. 18. Beneficios · La consistencia se vuelve más sencilla gracias a la inmutabilidad. · Tolerante a fallos: a través del “Lineage” los RDDs se pueden reconstruir si alguna partición se pierde. · A pesar de que Batch Processing es un modelo restringido a una serie de casos de uso por defecto, gracias a los RDDs se puede utilizar en multitud de aplicaciones. · Es bueno para algoritmos iterativos. · Más rápido que Hadoop.
  19. 19. Operaciones sobre RDDs Transformations Actions Map Filter Sample Union groupByKey reduceByKey Join Cache … Reduce Collect Count Save lookupKey …
  20. 20. Características adicionales de Spark
  21. 21. Análisis Interactivo de los Datos · Exploración de datos mediante una Shell interactiva en Scala.
  22. 22. Real Time
  23. 23. Gran apoyo de la comunidad
  24. 24. Clústers en Spark
  25. 25. Arquitectura
  26. 26. Además… · Spark es agnóstico. · Si las operaciones no caben en memoria, pagina a disco. · Aplicaciones aisladas: cada aplicación tiene su propio Executor.
  27. 27. Algunos ejemplos
  28. 28. Variables Broadcast:
  29. 29. Variables Broadcast: Accumulators:
  30. 30. Ejemplo 1: Paralelizar una colección
  31. 31. Ejemplo 1: Paralelizar una colección
  32. 32. Ejemplo 1: Paralelizar una colección Creamos la colleción
  33. 33. Ejemplo 1: Paralelizar una colección Action
  34. 34. Ejemplo 2: Utilizar Datasets
  35. 35. Ejemplo 2: Utilizar Datasets Cargar archivo en variable
  36. 36. Ejemplo 2: Utilizar Datasets Action
  37. 37. Ejemplo 3: Utilizar Datasets de HDFS
  38. 38. Ejemplo 3: Utilizar Datasets de HDFS Cargar archivo de HDFS en variable
  39. 39. Ejemplo 3: Utilizar Datasets de HDFS Action
  40. 40. Ejemplo 4: MapReduce Wordcount
  41. 41. Ejemplo 4: MapReduce Wordcount Leemos de HDFS
  42. 42. Ejemplo 4: MapReduce Wordcount “MapReducimos” el texto
  43. 43. Ejemplo 4: MapReduce Wordcount Guardamos en HDFS
  44. 44. Benchmarks
  45. 45. Lanzar una Query https://amplab.cs.berkeley.edu/benchma rk/
  46. 46. Agrupaciones https://amplab.cs.berkeley.edu/benchma rk/
  47. 47. Join https://amplab.cs.berkeley.edu/benchma rk/
  48. 48. Join https://amplab.cs.berkeley.edu/benchma rk/
  49. 49. Lanzar una Query desde un Script https://amplab.cs.berkeley.edu/benchma rk/
  50. 50. Lanzar una Query desde un Script https://amplab.cs.berkeley.edu/benchma rk/
  51. 51. ¿Quién lo utiliza?
  52. 52. Migrando de Hadoop a Spark https://blogs.apache.org/foundation/entry /…
  53. 53. Ya lo tienen en producción https://blogs.apache.org/foundation/entry /…
  54. 54. Conclusiones
  55. 55. Conclusiones · Spark está ahí fuera. · Extremadamente sencillo de instalar para jugar con el >> Para pasar a producción hacen falta especialistas. · Spark es más rápido para ciertos casos de uso. · Si utilizas Hadoop, prueba Spark. · Es sencillo mezclar Batch Processing con Real Time. · Se puede utilizar Scala, Java & Python.
  56. 56. Gracias @javituiter www.franciscojavierpulido.com www.exploradata.com

×