¿Por qué cambiar de Hadoop a Spark?
Teoria y ejemplos de nuestra experiencia
Gustavo Arjones
gustavo@socialmetrix.com
@arj...
Co-founder & CTO
Lic. Ciencias Computación
MBA Marketing Servicios
@arjones
gustavo@socialmetrix.com
linkedIn.com/in/arjon...
#1 Interacción
Razones para elección
•  Reducir las incertimdubres del proyecto
•  HiveQL à SQL menor ramp-up
•  Hadoop/Hive tenía sopor...
Empiezan los
problemas
HQL
 complejas
 
son
 para
 escribir
 
una
 vez
 y
 nunca
 
más
 entenderlas!
 
Hive es difícil de testear
•  Frameworks de tests para Hive no están maduros y son dificiles
de implementar.
•  Gastamos m...
No están las últimas versiones de Hive en AWS
•  Se había lanzado Hive 0.13 hacias 4+ meses y nosotros todavía
teníamos Hi...
MySQL retrasaba los jobs
•  Cuando los MapReduce jobs terminanban y había que enviar los
datos a MySQL, estaba tomando 2x ...
Y como resultado …
•  Bugs aumentando
•  Tiempo de proyecto dilatandose
•  Baja reutilización de codigo
•  Problemas que a...
¿Qué hacemos?
Seguimos por el mismo camino?
•  Probar Pig
•  Probar Cascading (o Scalding)
•  Probar Hbase
Pero seguíamos preocupados co...
¿Probamos el
framework que
la gente viene
hablando?
Qué es Spark?
Apache Spark™ is a fast and general engine for large-scale data
processing.
•  Procesamiento In-memory (pref...
Principales Pilares
Task Scheduler
•  Prepara los jobs a traves de DAG (Directed acyclic
graph)
•  Enganchan funciones par...
DEMO – Word Count (el hello world de BigData)
¿Por qué nos
gusta?
Viene de buen “origen”
BDAS, the Berkeley Data Analytics Stack (AMPLAB)
Plataforma Unificada
Plataforma Unificada (lines of code)
0
20000
40000
60000
80000
100000
120000
140000
Hadoop
MapReduce
Storm
(Streaming)
Imp...
Proyecto muy activo (y ganando tracción) ’13-’14
Proyecto muy activo 2015
h;ps://twi;er.com/bigdata/status/610482424741367809
 
Y más …
•  Esfuerzo para estandarización de la plataforma
•  Certificación para Distros
& Apps gratis
•  Material de train...
Ventajas de la Plataforma Unificada
•  No es necesario copiar datos/ETL entre sistemas
•  Varios procesamientos en el mism...
Compacto y poderoso
•  Escrito en Scala, con wrappers para Python, Java* y R
API muy expresiva
Ver: https://spark.apache.org/docs/latest/api/scala/#org.apache.spark.rdd.RDD
+
SQL
+
Data
Frames
•  Aprender, prototipado rápido
•  Análisis interactivo sobre los datos
Consola interactiva (REPL)
Version Web de Spark-Shell – similar a Python Notebooks
Spark UI
h;ps://databricks.com/blog/2015/06/22/understanding-­‐
your-­‐spark-­‐applicaMon-­‐through-­‐visualizaMon.html
 
Soporte Datasources
h;p://spark-­‐packages.org
 
Spark SQL Demo
Código Testeable!
•  El contexto puede crear RDD
Easy Deployment
•  Local-mode (development)
•  Standalone (bare metal)
•  Standalone + Amazon AWS
•  Mesos
•  Yarn
Components for distributed execution in Spark
Y Hadoop?
Spark Or Hadoop -- Which Is
The Best Big Data Framework?
http://www.forbes.com/sites/bernardmarr/
2015/06/22/spa...
Modelo Map-Reduce
iter. 1 iter. 2 . . .
Input
HDFS
read
HDFS
write
HDFS
read
HDFS
write
Input
query 1
query 2
query 3
resu...
iter. 1 iter. 2 . . .
Input
Distributed
memory
Input
query 1
query 2
query 3
. . .
one-time
processing
10-100× más rápido
...
Spark y Hadoop pueden ser amigos
•  No hay HDFS en Spark – ver Tachyon
•  Acceso HDFS / S3
•  YARN
•  Usando Input/Output ...
Log Analyzer
https://www.gitbook.com/book/
databricks/databricks-spark-reference-
applications/details
Entonces todo es
perfecto? Nop …
•  Long Jobs
•  Serialization Issues
•  OOM
•  Data Locallity
http://blog.cloudera.com/bl...
Donde aprender
más?
Mucha documentación disponible
Official Documentation
https://spark.apache.org/
Spark Summit 2015 - Slides and Video
https:...
No te gustó
Spark?
Apache Flink
http://flink.apache.org
Gracias & Obrigado!
Gustavo Arjones
gustavo@socialmetrix.com
@arjones
¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?
of 49

¿Por que cambiar de Apache Hadoop a Apache Spark?

Abstract de la charla realizada en SUGAR - Scala User Group Argentina Apache Spark [1] es un framework para procesamiento distribuído diseñado para ser amigable para Data-Scientists y programadores, con soporte nativo a muchos lenguajes y diversidad de formatos de datos es extramadamente flexible. Cambiando el modelo establecido por Hadoop v1 de Map-Reduce por un grafo de ejecución (DAG) y manteniendo los pasos intermédios en RAM, Spark brinda excelente performance y una API muy expresiva. Gustavo Arjones [2], CTO de Socialmetrix, va contar la experiencia que tuvieron al cambiarse de Hadoop a Spark y lo que los llevaron a este cambio. Esta charla es una introducción teorica y practica a Spark y sus distintos componentes. Los tópicos a discutir son: • Qué és? • Aspectos que hacen Spark tan atractivo para la comunidad • Plataforma unificada para Data Science (Batch, Stream, ML, Graph) • Soporte a distintos lenguajes • Ejecución: RDD y DAG / Task Scheduller • Tracción de la comunidad (# commits, # commiters) • testing, etc • Demos: • Spark-shell: Explicar paso a paso el WordCount • LogAnalytics - compilar y submeter al cluster • SQL/DataFrames: Demostrar que se puede consumir directamente JSON y hacer queries con SQL [1] http://spark.apache.org [2] https://linkedin.com/in/arjones
Published on: Mar 4, 2016
Published in: Technology      
Source: www.slideshare.net


Transcripts - ¿Por que cambiar de Apache Hadoop a Apache Spark?

  • 1. ¿Por qué cambiar de Hadoop a Spark? Teoria y ejemplos de nuestra experiencia Gustavo Arjones gustavo@socialmetrix.com @arjones
  • 2. Co-founder & CTO Lic. Ciencias Computación MBA Marketing Servicios @arjones gustavo@socialmetrix.com linkedIn.com/in/arjones Brasileño, en ARG desde 2008 Gustavo Arjones
  • 3. #1 Interacción
  • 4. Razones para elección •  Reducir las incertimdubres del proyecto •  HiveQL à SQL menor ramp-up •  Hadoop/Hive tenía soporte en AWS •  Proof of Concept funcionó correctamente •  Pruebas con DynamoDB demonstraron ser muy costosas
  • 5. Empiezan los problemas
  • 6. HQL  complejas   son  para  escribir   una  vez  y  nunca   más  entenderlas!
  • 7. Hive es difícil de testear •  Frameworks de tests para Hive no están maduros y son dificiles de implementar. •  Gastamos mucho tiempo y recursos escribiendo validadores de procesos y métricas
  • 8. No están las últimas versiones de Hive en AWS •  Se había lanzado Hive 0.13 hacias 4+ meses y nosotros todavía teníamos Hive 0.12 en AWS •  Perdíamos la dinámica de un proyecto con muchas features nuevas y mejoras de performance
  • 9. MySQL retrasaba los jobs •  Cuando los MapReduce jobs terminanban y había que enviar los datos a MySQL, estaba tomando 2x más tiempo que el MR de cálculo. •  Problemas típicos de MySQL, pérdida de performance en grande volúmenes de datos •  Limite de escalabilidad
  • 10. Y como resultado … •  Bugs aumentando •  Tiempo de proyecto dilatandose •  Baja reutilización de codigo •  Problemas que atraparías en COMPILE-TIME terminan en RUNTIME – porque es SQL!
  • 11. ¿Qué hacemos?
  • 12. Seguimos por el mismo camino? •  Probar Pig •  Probar Cascading (o Scalding) •  Probar Hbase Pero seguíamos preocupados con el tiempo de ejecución!
  • 13. ¿Probamos el framework que la gente viene hablando?
  • 14. Qué es Spark? Apache Spark™ is a fast and general engine for large-scale data processing. •  Procesamiento In-memory (preferencialmente) •  Framework de Procesamiento Unificado •  Para Ingenieros & Data Scientists
  • 15. Principales Pilares Task Scheduler •  Prepara los jobs a traves de DAG (Directed acyclic graph) •  Enganchan funciones para ejecutar los stages •  Cache-aware; considera data utilización & localización (data locality) •  Partitioning-aware para reducir shuffles por la red RDD (Resilient Distributed Datasets) •   Estructura de datos Immutable (In-memory) •  Tolerante a fallas (Se reama en caso de falla) •  Estructura de datos que puede ser operada en paralelo • Rica interfaz de Transformations & Actions
  • 16. DEMO – Word Count (el hello world de BigData)
  • 17. ¿Por qué nos gusta?
  • 18. Viene de buen “origen” BDAS, the Berkeley Data Analytics Stack (AMPLAB)
  • 19. Plataforma Unificada
  • 20. Plataforma Unificada (lines of code) 0 20000 40000 60000 80000 100000 120000 140000 Hadoop MapReduce Storm (Streaming) Impala (SQL) Giraph (Graph) Spark non-test, non-example source lines (2014 numbers) GraphX Streaming SparkSQL
  • 21. Proyecto muy activo (y ganando tracción) ’13-’14
  • 22. Proyecto muy activo 2015
  • 23. h;ps://twi;er.com/bigdata/status/610482424741367809
  • 24. Y más … •  Esfuerzo para estandarización de la plataforma •  Certificación para Distros & Apps gratis •  Material de training gratis •  Databricks levantó $47M •  Databricks Cloud (?)
  • 25. Ventajas de la Plataforma Unificada •  No es necesario copiar datos/ETL entre sistemas •  Varios procesamientos en el mismo código (claridad) •  Reutilización de código (Batch & Realtime) •  Un único sistema para aprender ß Happy Devs •  Ops: Un único sistema para mantener ß Happy Ops Big Deal para Arquitectura Lambda
  • 26. Compacto y poderoso •  Escrito en Scala, con wrappers para Python, Java* y R
  • 27. API muy expresiva Ver: https://spark.apache.org/docs/latest/api/scala/#org.apache.spark.rdd.RDD + SQL + Data Frames
  • 28. •  Aprender, prototipado rápido •  Análisis interactivo sobre los datos Consola interactiva (REPL)
  • 29. Version Web de Spark-Shell – similar a Python Notebooks
  • 30. Spark UI h;ps://databricks.com/blog/2015/06/22/understanding-­‐ your-­‐spark-­‐applicaMon-­‐through-­‐visualizaMon.html
  • 31. Soporte Datasources h;p://spark-­‐packages.org
  • 32. Spark SQL Demo
  • 33. Código Testeable! •  El contexto puede crear RDD
  • 34. Easy Deployment •  Local-mode (development) •  Standalone (bare metal) •  Standalone + Amazon AWS •  Mesos •  Yarn
  • 35. Components for distributed execution in Spark
  • 36. Y Hadoop? Spark Or Hadoop -- Which Is The Best Big Data Framework? http://www.forbes.com/sites/bernardmarr/ 2015/06/22/spark-or-hadoop-which-is-the-best- big-data-framework/
  • 37. Modelo Map-Reduce iter. 1 iter. 2 . . . Input HDFS read HDFS write HDFS read HDFS write Input query 1 query 2 query 3 result 1 result 2 result 3 . . . HDFS read Lento porque necesita replicación, serialización y I/O
  • 38. iter. 1 iter. 2 . . . Input Distributed memory Input query 1 query 2 query 3 . . . one-time processing 10-100× más rápido Spark (in-memory + DAG execution engine)
  • 39. Spark y Hadoop pueden ser amigos •  No hay HDFS en Spark – ver Tachyon •  Acceso HDFS / S3 •  YARN •  Usando Input/Output formats de Hadoop
  • 40. Log Analyzer https://www.gitbook.com/book/ databricks/databricks-spark-reference- applications/details
  • 41. Entonces todo es perfecto? Nop … •  Long Jobs •  Serialization Issues •  OOM •  Data Locallity http://blog.cloudera.com/blog/2015/05/ working-with-apache-spark-or-how-i- learned-to-stop-worrying-and-love-the- shuffle/
  • 42. Donde aprender más?
  • 43. Mucha documentación disponible Official Documentation https://spark.apache.org/ Spark Summit 2015 - Slides and Video https://spark-summit.org/2015/ Blog Official Databricks https://databricks.com/blog Personal notes about Apache Spark http://arjon.es/tag/spark/
  • 44. No te gustó Spark? Apache Flink http://flink.apache.org
  • 45. Gracias & Obrigado! Gustavo Arjones gustavo@socialmetrix.com @arjones

Related Documents