Este documento compara Hadoop y Spark, argumentando que Spark es una mejor opción debido a su capacidad de procesamiento de datos in-memory, su interfaz más expresiva y su naturaleza de plataforma unificada que permite procesamiento por lotes y en tiempo real con un solo código. El documento también discute algunos desafíos de Spark como trabajos largos y problemas de serialización.
6. 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
10. 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
11. 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
12. 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
13. 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!
17. 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
18. 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
28. 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 (?)
29. 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
40. 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/
41. 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
45. 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/
47. 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/