Introduccion a Apache Spark

4.741 visualizaciones

Publicado el

Introducción (en Español) al framework de procesamiento distribuido en memoria Apache Spark. Elementos básicos de Spark, RDD, incluye demo de las librerías SparkSQL y Spark Streaming

Presentado en www.nardoz.com

http://arjon.es/2014/08/14/introduccion-a-apache-spark-en-espanol/

Publicado en: Tecnología

Introduccion a Apache Spark

  1. 1. Introducción Apache Spark Gustavo Arjones gustavo@socialmetrix.com @arjones
  2. 2. Co-founder & CTO, Socialmetrix Lic. Ciencias Computación MBA Marketing Servicios @arjones gustavo@socialmetrix.com Brasileño, en ARG desde 2008 Gustavo Arjones
  3. 3. Qué es Apache Spark?
  4. 4. 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
  5. 5. 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
  6. 6. Porqué me gusta?
  7. 7. Viene de buen “origen” BDAS, the Berkeley Data Analytics Stack (AMPLAB)
  8. 8. Compacto y poderoso •  Escrito en Scala, con wrappers para Python y Java*
  9. 9. API muy expresiva Ver: https://spark.apache.org/docs/latest/api/scala/#org.apache.spark.rdd.RDD
  10. 10. •  Aprender, prototipado rápido •  Análisis interactivo sobre los datos Consola interactiva
  11. 11. Plataforma Unificada
  12. 12. Plataforma Unificada •  No es necesario copiar datos/ETL entre sistemas •  Varios tipos de procesamientos en el mismo código (claridad) •  Reutilización de código (Batch & Realtime) •  Un único sistema para aprender •  Un único sistema para mantener Big Deal para Arquitectura Lambda
  13. 13. 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 GraphX Streaming SparkSQL
  14. 14. Spark UI
  15. 15. Código Testeable! •  El contexto puede crear RDD
  16. 16. Proyecto muy activo (y ganando tracción)
  17. 17. Proyecto MUY activo (y ganando tracción) *as of June 1, 2014 0   50   100   150   200   250   Patches   MapReduce   Storm   Yarn   Spark   0   5000   10000   15000   20000   25000   30000   35000   40000   45000   Lines  Added   MapReduce   Storm   Yarn   Spark   0   2000   4000   6000   8000   10000   12000   14000   16000   Lines  Removed   MapReduce   Storm   Yarn   Spark  
  18. 18. 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???
  19. 19. Y Hadoop?
  20. 20. 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
  21. 21. 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)
  22. 22. Spark y Hadoop pueden ser amigos •  YARN / Mesos •  Acceso HDFS / S3 •  Usando Input/Output formats de Hadoop
  23. 23. DEMO http://bit.ly/NardozSparkDemo
  24. 24. Donde aprender más?
  25. 25. Mucha documentación disponible https://spark.apache.org/documentation.html http://spark-summit.org/2014/training http://shop.oreilly.com/product/ 0636920028512.do http://arjon.es/tag/spark/
  26. 26. Gracias & Obrigado! Gustavo Arjones gustavo@socialmetrix.com @arjones

×