SlideShare a Scribd company logo
1 of 49
Download to read offline
¿Por qué cambiar de Hadoop a Spark?
Teoria y ejemplos de nuestra experiencia
Gustavo Arjones
gustavo@socialmetrix.com
@arjones
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
#1 Interacción
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
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 mucho tiempo y recursos escribiendo validadores de
procesos y métricas
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
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
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!
¿Qué hacemos?
Seguimos por el mismo camino?
•  Probar Pig
•  Probar Cascading (o Scalding)
•  Probar Hbase
Pero seguíamos preocupados con
el tiempo de ejecución!
¿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 (preferencialmente)
•  Framework de Procesamiento Unificado
•  Para Ingenieros & Data Scientists
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
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)
Impala (SQL) Giraph
(Graph)
Spark
non-test, non-example source lines (2014 numbers)
GraphX
Streaming
SparkSQL
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 training gratis
•  Databricks levantó $47M
•  Databricks Cloud (?)
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
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/spark-or-hadoop-which-is-the-best-
big-data-framework/
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
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)
Spark y Hadoop pueden ser amigos
•  No hay HDFS en Spark – ver Tachyon
•  Acceso HDFS / S3
•  YARN
•  Usando Input/Output formats de Hadoop
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/blog/2015/05/
working-with-apache-spark-or-how-i-
learned-to-stop-worrying-and-love-the-
shuffle/
Donde aprender
más?
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/
No te gustó
Spark?
Apache Flink
http://flink.apache.org
Gracias & Obrigado!
Gustavo Arjones
gustavo@socialmetrix.com
@arjones

More Related Content

What's hot

What's hot (20)

Introducción a Hadoop
Introducción a HadoopIntroducción a Hadoop
Introducción a Hadoop
 
Introducción a hadoop
Introducción a hadoopIntroducción a hadoop
Introducción a hadoop
 
Spark meetup barcelona
Spark meetup barcelonaSpark meetup barcelona
Spark meetup barcelona
 
Aula virtual apache_hadoop_v3 1
Aula virtual apache_hadoop_v3 1Aula virtual apache_hadoop_v3 1
Aula virtual apache_hadoop_v3 1
 
Big data para desarrolladores utilizando hadoop y openstack
Big data para desarrolladores utilizando hadoop y openstack Big data para desarrolladores utilizando hadoop y openstack
Big data para desarrolladores utilizando hadoop y openstack
 
Open analytics. data analytics con hadoop
Open analytics. data analytics con hadoopOpen analytics. data analytics con hadoop
Open analytics. data analytics con hadoop
 
Meetup Real Time Aggregations Spark Streaming + Spark Sql
Meetup Real Time Aggregations  Spark Streaming + Spark SqlMeetup Real Time Aggregations  Spark Streaming + Spark Sql
Meetup Real Time Aggregations Spark Streaming + Spark Sql
 
Hadoop en accion
Hadoop en accionHadoop en accion
Hadoop en accion
 
Tecnicas Big Data: Meetup Cassandra
Tecnicas Big Data: Meetup CassandraTecnicas Big Data: Meetup Cassandra
Tecnicas Big Data: Meetup Cassandra
 
Construyendo una Infraestructura de Big Data rentable y escalable (la evoluci...
Construyendo una Infraestructura de Big Data rentable y escalable (la evoluci...Construyendo una Infraestructura de Big Data rentable y escalable (la evoluci...
Construyendo una Infraestructura de Big Data rentable y escalable (la evoluci...
 
Hadoop
HadoopHadoop
Hadoop
 
Spark web meetup
Spark web meetupSpark web meetup
Spark web meetup
 
Introducción a R - Primeros pasos en R
Introducción a R - Primeros pasos en RIntroducción a R - Primeros pasos en R
Introducción a R - Primeros pasos en R
 
Creación de un clúster de Hadoop con Cloudera
Creación de un clúster de Hadoop con ClouderaCreación de un clúster de Hadoop con Cloudera
Creación de un clúster de Hadoop con Cloudera
 
Meetup Spark y la Combinación de sus Distintos Módulos
Meetup Spark y la Combinación de sus Distintos MódulosMeetup Spark y la Combinación de sus Distintos Módulos
Meetup Spark y la Combinación de sus Distintos Módulos
 
Big Data a traves de una implementación
Big Data a traves de una implementaciónBig Data a traves de una implementación
Big Data a traves de una implementación
 
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...
 
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
Big Data, Almacenes de datos empresariales (EDW) y Windows Azure (SQL Databas...
 
Meetup errores en proyectos Big Data
Meetup errores en proyectos Big DataMeetup errores en proyectos Big Data
Meetup errores en proyectos Big Data
 
Hadoop
HadoopHadoop
Hadoop
 

Similar to ¿Por que cambiar de Apache Hadoop a Apache Spark?

Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Socialmetrix
 
Big Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStackBig Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStack
Software Guru
 
Big data una cuantificación importante..
Big data una cuantificación importante..Big data una cuantificación importante..
Big data una cuantificación importante..
wmichaelw
 

Similar to ¿Por que cambiar de Apache Hadoop a Apache Spark? (20)

Polybase
PolybasePolybase
Polybase
 
DBA del Futuro (Un nuevo paradigma)
DBA del Futuro (Un nuevo paradigma)DBA del Futuro (Un nuevo paradigma)
DBA del Futuro (Un nuevo paradigma)
 
Why Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén CasadoWhy Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén Casado
 
Big Data en Azure: Azure Data Lake
Big Data en Azure: Azure Data LakeBig Data en Azure: Azure Data Lake
Big Data en Azure: Azure Data Lake
 
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
 
Big Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStackBig Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStack
 
Sistema de Bases de Datos AWS
Sistema de Bases de Datos AWSSistema de Bases de Datos AWS
Sistema de Bases de Datos AWS
 
Presentación taller aplicaciones
Presentación  taller aplicacionesPresentación  taller aplicaciones
Presentación taller aplicaciones
 
Spark: una chispa con la velocidad del rayo ¿el sustituto de Hadoop?
Spark: una chispa con la velocidad del rayo  ¿el sustituto de Hadoop?Spark: una chispa con la velocidad del rayo  ¿el sustituto de Hadoop?
Spark: una chispa con la velocidad del rayo ¿el sustituto de Hadoop?
 
Congreso Academy Journal Celaya 2017
Congreso Academy Journal Celaya 2017Congreso Academy Journal Celaya 2017
Congreso Academy Journal Celaya 2017
 
Scala @ Real life
Scala @ Real lifeScala @ Real life
Scala @ Real life
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
 
01 Introduccion a Big Data y Hadoop.pdf
01 Introduccion a Big Data y Hadoop.pdf01 Introduccion a Big Data y Hadoop.pdf
01 Introduccion a Big Data y Hadoop.pdf
 
Big data una cuantificación importante..
Big data una cuantificación importante..Big data una cuantificación importante..
Big data una cuantificación importante..
 
Tabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdf
Tabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdfTabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdf
Tabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdf
 
Apache derby
Apache derbyApache derby
Apache derby
 
Scala@real life
Scala@real lifeScala@real life
Scala@real life
 
avanttic - webinar: Oracle Database 12c (24-03-2015)
avanttic - webinar: Oracle Database 12c (24-03-2015)avanttic - webinar: Oracle Database 12c (24-03-2015)
avanttic - webinar: Oracle Database 12c (24-03-2015)
 
Text Mining con R en SQL Server 2016
Text Mining con R en SQL Server 2016Text Mining con R en SQL Server 2016
Text Mining con R en SQL Server 2016
 
Diferencia entre sgbd
Diferencia entre sgbdDiferencia entre sgbd
Diferencia entre sgbd
 

More from Socialmetrix

More from Socialmetrix (13)

7 Disparadores de Engagement para o mercado de consumo massivo
7 Disparadores de Engagement para o mercado de consumo massivo7 Disparadores de Engagement para o mercado de consumo massivo
7 Disparadores de Engagement para o mercado de consumo massivo
 
The Ultimate Guide to using Social Media Media Analytics
The Ultimate Guide to using Social Media Media AnalyticsThe Ultimate Guide to using Social Media Media Analytics
The Ultimate Guide to using Social Media Media Analytics
 
Social Media is no longer something relevant just for the area of Marketing. ...
Social Media is no longer something relevant just for the area of Marketing. ...Social Media is no longer something relevant just for the area of Marketing. ...
Social Media is no longer something relevant just for the area of Marketing. ...
 
How to Create a Successful Social Media Campaign
How to Create a Successful Social Media CampaignHow to Create a Successful Social Media Campaign
How to Create a Successful Social Media Campaign
 
AWS re:Invent 2014 | (ARC202) Real-World Real-Time Analytics
AWS re:Invent 2014 | (ARC202) Real-World Real-Time AnalyticsAWS re:Invent 2014 | (ARC202) Real-World Real-Time Analytics
AWS re:Invent 2014 | (ARC202) Real-World Real-Time Analytics
 
Introducción a Apache Spark a través de un caso de uso cotidiano
Introducción a Apache Spark a través de un caso de uso cotidianoIntroducción a Apache Spark a través de un caso de uso cotidiano
Introducción a Apache Spark a través de un caso de uso cotidiano
 
Social media brasil 2014 - O Marketing e as Redes Sociais em tempos de conver...
Social media brasil 2014 - O Marketing e as Redes Sociais em tempos de conver...Social media brasil 2014 - O Marketing e as Redes Sociais em tempos de conver...
Social media brasil 2014 - O Marketing e as Redes Sociais em tempos de conver...
 
14º Encontro Locaweb - Evolução das Plataformas para Métricas Sociais
14º Encontro Locaweb - Evolução das Plataformas para Métricas Sociais14º Encontro Locaweb - Evolução das Plataformas para Métricas Sociais
14º Encontro Locaweb - Evolução das Plataformas para Métricas Sociais
 
Call2Social
Call2SocialCall2Social
Call2Social
 
Redis
RedisRedis
Redis
 
Jugar Introduccion a Scala
Jugar Introduccion a ScalaJugar Introduccion a Scala
Jugar Introduccion a Scala
 
Endeavor – métricas em mídias sociais
Endeavor – métricas em mídias sociaisEndeavor – métricas em mídias sociais
Endeavor – métricas em mídias sociais
 
MongoDB, RabbitMQ y Applicaciones en Nube
MongoDB, RabbitMQ y Applicaciones en NubeMongoDB, RabbitMQ y Applicaciones en Nube
MongoDB, RabbitMQ y Applicaciones en Nube
 

Recently uploaded

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Recently uploaded (11)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

¿Por que cambiar de Apache Hadoop a Apache Spark?