SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Primeros pasos con Spark 
Apache Spark Madrid Meetup 
Daniel Higuero dhiguero@stratio.com @dhiguero 
1
•Introducción 
•Conceptos básicos 
•Ecosistema Spark 
•Instalación del entorno 
•Errores comunes 
Agenda 
2
3 
VIEWER DISCRETION IS ADVISED 
All elephants are innocent until proven guilty in a court of development 
Opinions expressed are solely my own and do not express the views or opinions of my employer.
Introducción 
4
o¿Qué es Spark? 
oFramework de procesamiento paralelo 
oHistoria 
Introducción 
Apache Spark Madrid Meetup 
5 
https://spark.apache.org/ 
Apache Software Foundation
oConcepto de programación funcional 
oPopularizado por Google 
Map-reduce 
6 
(map 'list (lambda (x) (+ x 10)) '(1 2 3 4)) => (11 12 13 14) (reduce #'+ '(1 2 3 4)) => 10 
Jeff Dean and Sanjay Ghemawat. "MapReduce: Simplified Data Processing on Large Clusters." OSDI (2004) 
Apache Spark Madrid Meetup
Map-Reduce 
7 
Input data 
Map 
Map 
Map 
Map 
Reduce 
Reduce 
Reduce 
result 
Apache Spark Madrid Meetup
oMayor flexibilidad en la definición de transformaciones 
oMenor uso de almacenamiento en disco 
oAprovechamiento de la memoria 
oTolerancia a fallos 
oTracción de la comunidad 
Ventajas de Spark 
Apache Spark Madrid Meetup 
8
Conceptos básicos 
9
oAbstracción básica en Spark 
oContiene las transformaciones que se van a realizar sobre un conjunto de datos 
•Inmutable 
•Lazy evaluation 
•En caso de fallo se puede recuperar el estado 
•Control de persistencia y particionado 
RDD 
Apache Spark Madrid Meetup 
10
oRepresenta la conexión a un cluster Spark 
oPermite crear distintos tipos de variables 
•RDD 
•Acumuladores 
•Broadcast 
SparkContext 
Apache Spark Madrid Meetup 
11 
new SparkContext(master: String, appName: String, conf: SparkConf)
Ecosistema 
12
Ecosistema Spark 
13 
Apache Spark Madrid Meetup 
© databricks
oProporciona las abstracciones básicas y se encarga del scheduling 
Spark core engine 
14 
Apache Spark Madrid Meetup 
RDD 
DAG Scheduling 
Cluster manager 
Threads 
Block manager 
Task scheduling 
Worker
oPermite transformar una fuente streaming en un conjunto de mini-batch 
•Definición de una ventana 
Temporal 
Spark Streaming 
15 
Apache Spark Madrid Meetup
Spark Streaming 
16 
Apache Spark Madrid Meetup 
Window = 5 
batch0 
batch1 
batch2 
batch3 
batch4 
batch5 
batch6 
batch7 
tiempo 
tiempo
oLibrería para Machine Learning 
oAbstracciones útiles para cómputo 
oVectores, Matrices dispersas 
oImplementación de algoritmos conocidos 
oClasificación, regresión, collaborative filtering y clustering 
MLlib 
17 
Apache Spark Madrid Meetup
oCapa de acceso SQL para ejecutar operaciones sobre RDD 
oSchemaRDD 
SparkSQL 
18 
Apache Spark Madrid Meetup 
sqlCtx = new HiveContext(sc) results = sqlCtx.sql( "SELECT * FROM people") names = results.map(lambda p: p.name) 
© databricks
SparkSQL (II) 
19 
Apache Spark Madrid Meetup 
val sqlContext = new org.apache.spark.sql.SQLContext(sc) import sqlContext.createSchemaRDD case class Person(name: String, age: Int) val people = sc.textFile("examples/src/main/resources/people.txt") .map(_.split(",")) .map(p => Person(p(0), p(1).trim.toInt)) people.registerAsTable("people") val teenagers = sqlContext .sql("SELECT name FROM people WHERE age >= 13 AND age <= 19") teenagers.map(t => "Name: " + t(0)).collect().foreach(println)
oGraphX 
•Soporte para grafos 
oSparkR 
•Permite conectar R con Spark 
oBlinkDB 
•Base de datos que ofrece funciones aproximadas 
Otros 
20 
Apache Spark Madrid Meetup 
graph = Graph(vertices, edges) messages = spark.textFile("hdfs://...") graph2 = graph.joinVertices(messages) { (id, vertex, msg) => ... }
Errores comunes 
21
oURL del master 
oNo distribuir los JAR entre los workers 
oFunciones con clases no serializables 
oFunciona en local -> funciona en distribuido 
oMemory leaks y eficiencia GC en operadores 
oConfusión operadores (reduce vs group-by) 
Errores comunes 
#CassandraSummit 2014 
22
Certificaciones 
23
oDistribuciones certificadas 
oCertificación de desarrolladores 
oCentros de formación certificados 
Certificaciones 
#CassandraSummit 2014 
24
Primeros pasos con Spark 
Apache Spark Madrid Meetup 
Daniel Higuero dhiguero@stratio.com @dhiguero 
25

Más contenido relacionado

La actualidad más candente

La actualidad más candente (15)

Procesamiento masivo de datos en MongoDB
Procesamiento masivo de datos en MongoDBProcesamiento masivo de datos en MongoDB
Procesamiento masivo de datos en MongoDB
 
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...
 
Meetup Spark 2.0
Meetup Spark 2.0Meetup Spark 2.0
Meetup Spark 2.0
 
Spark web meetup
Spark web meetupSpark web meetup
Spark web meetup
 
Fun[ctional] spark with scala
Fun[ctional] spark with scalaFun[ctional] spark with scala
Fun[ctional] spark with scala
 
Panorama BigData (OpenExpo2017)
Panorama BigData (OpenExpo2017)Panorama BigData (OpenExpo2017)
Panorama BigData (OpenExpo2017)
 
Taller: Limpieza y preparación de datos con Optimus y Apache Spark
Taller: Limpieza y preparación de datos con Optimus y Apache SparkTaller: Limpieza y preparación de datos con Optimus y Apache Spark
Taller: Limpieza y preparación de datos con Optimus y Apache Spark
 
Innovación Amazon
Innovación AmazonInnovación Amazon
Innovación Amazon
 
Machine learning usando Weka, en un entorno de cómputo distribuido
Machine learning usando Weka, en un entorno de cómputo distribuidoMachine learning usando Weka, en un entorno de cómputo distribuido
Machine learning usando Weka, en un entorno de cómputo distribuido
 
Paralelismo en SQL Server
Paralelismo en SQL ServerParalelismo en SQL Server
Paralelismo en SQL Server
 
Postgres como base de datos NoSQL. Codemotion 2015
Postgres como base de datos NoSQL. Codemotion 2015Postgres como base de datos NoSQL. Codemotion 2015
Postgres como base de datos NoSQL. Codemotion 2015
 
Pon tus aplicaciones a 100 con redis
Pon tus aplicaciones a 100 con redisPon tus aplicaciones a 100 con redis
Pon tus aplicaciones a 100 con redis
 
Enterprise Ready Data Warehousing in the Cloud
Enterprise Ready Data Warehousing in the CloudEnterprise Ready Data Warehousing in the Cloud
Enterprise Ready Data Warehousing in the Cloud
 
Arquitectura Multitenant en Oracle 12c
Arquitectura Multitenant en Oracle 12cArquitectura Multitenant en Oracle 12c
Arquitectura Multitenant en Oracle 12c
 
Elastic search
Elastic searchElastic search
Elastic search
 

Destacado

StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
Álvaro Agea Herradón
 

Destacado (20)

Why Spark?
Why Spark?Why Spark?
Why Spark?
 
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
 
Learn to use Stratio Crossdata
Learn to use Stratio CrossdataLearn to use Stratio Crossdata
Learn to use Stratio Crossdata
 
Crossdata: an efficient distributed datahub with batch and streaming query ca...
Crossdata: an efficient distributed datahub with batch and streaming query ca...Crossdata: an efficient distributed datahub with batch and streaming query ca...
Crossdata: an efficient distributed datahub with batch and streaming query ca...
 
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
 
Stratio big data spain
Stratio   big data spainStratio   big data spain
Stratio big data spain
 
Cloud or not to Cloud? That’s the question Businesses need an answer for!
Cloud or not to Cloud? That’s the question Businesses need an answer for!Cloud or not to Cloud? That’s the question Businesses need an answer for!
Cloud or not to Cloud? That’s the question Businesses need an answer for!
 
24 HOP edición Español - Machine learning - Cesar Oviedo
24 HOP edición Español - Machine learning - Cesar Oviedo24 HOP edición Español - Machine learning - Cesar Oviedo
24 HOP edición Español - Machine learning - Cesar Oviedo
 
Big data big opportunities
Big data big opportunitiesBig data big opportunities
Big data big opportunities
 
Spark Hands-on
Spark Hands-onSpark Hands-on
Spark Hands-on
 
Adios hadoop, Hola Spark! T3chfest 2015
Adios hadoop, Hola Spark! T3chfest 2015Adios hadoop, Hola Spark! T3chfest 2015
Adios hadoop, Hola Spark! T3chfest 2015
 
Technological pillars to enable Smarter (Collaborative + Inclusive) Environme...
Technological pillars to enable Smarter (Collaborative + Inclusive) Environme...Technological pillars to enable Smarter (Collaborative + Inclusive) Environme...
Technological pillars to enable Smarter (Collaborative + Inclusive) Environme...
 
Curso Cloud Computing, Parte 1: Amazon Web Services
Curso Cloud Computing, Parte 1: Amazon Web ServicesCurso Cloud Computing, Parte 1: Amazon Web Services
Curso Cloud Computing, Parte 1: Amazon Web Services
 
Cloud Computing: una perspectiva tecnológica
Cloud Computing: una perspectiva tecnológicaCloud Computing: una perspectiva tecnológica
Cloud Computing: una perspectiva tecnológica
 
MongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercadoMongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercado
 
Spark shuffle introduction
Spark shuffle introductionSpark shuffle introduction
Spark shuffle introduction
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y Python
 
Cloud Foundry CEO Sam Ramji 2015 OSCON Keynote
Cloud Foundry CEO Sam Ramji 2015 OSCON KeynoteCloud Foundry CEO Sam Ramji 2015 OSCON Keynote
Cloud Foundry CEO Sam Ramji 2015 OSCON Keynote
 
Curso Cloud Computing, Parte 2: Google App Engine
Curso Cloud Computing, Parte 2: Google App EngineCurso Cloud Computing, Parte 2: Google App Engine
Curso Cloud Computing, Parte 2: Google App Engine
 
Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014Revelando los secretos de twitter, Festival de Software Libre 2014
Revelando los secretos de twitter, Festival de Software Libre 2014
 

Similar a Primeros pasos con Apache Spark - Madrid Meetup

Similar a Primeros pasos con Apache Spark - Madrid Meetup (20)

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
 
Spark meetup barcelona
Spark meetup barcelonaSpark meetup barcelona
Spark meetup barcelona
 
Análisis de datos con Apache Spark
Análisis de datos con Apache SparkAnálisis de datos con Apache Spark
Análisis de datos con Apache Spark
 
Meetup Fun[ctional] spark with scala
Meetup Fun[ctional] spark with scalaMeetup Fun[ctional] spark with scala
Meetup Fun[ctional] spark with scala
 
Introducción a Apache Spark
Introducción a Apache SparkIntroducción a Apache Spark
Introducción a Apache Spark
 
Computación distribuida usando Python
Computación distribuida usando PythonComputación distribuida usando Python
Computación distribuida usando Python
 
Cassandra Meetup
Cassandra MeetupCassandra Meetup
Cassandra Meetup
 
Resilient Distributed Dataset - Analisis paper
Resilient  Distributed Dataset - Analisis paper Resilient  Distributed Dataset - Analisis paper
Resilient Distributed Dataset - Analisis paper
 
Spark
SparkSpark
Spark
 
Meetup Junio Apache Spark Fundamentals
Meetup Junio Apache Spark FundamentalsMeetup Junio Apache Spark Fundamentals
Meetup Junio Apache Spark Fundamentals
 
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
 
Herramientas de visualización de datos
Herramientas de visualización de datosHerramientas de visualización de datos
Herramientas de visualización de datos
 
Introduccion a databricks
Introduccion a databricksIntroduccion a databricks
Introduccion a databricks
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apis
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera API
 
M04 09 20_v05_plataformas_bd
M04 09 20_v05_plataformas_bdM04 09 20_v05_plataformas_bd
M04 09 20_v05_plataformas_bd
 
Creando su primera aplicación de Big Data en AWS
Creando su primera aplicación de Big Data en AWSCreando su primera aplicación de Big Data en AWS
Creando su primera aplicación de Big Data en AWS
 
Codemotion 2014 Scala @real life
Codemotion 2014 Scala @real lifeCodemotion 2014 Scala @real life
Codemotion 2014 Scala @real life
 
Scala @ Real Life Codemotion 2014
Scala @ Real Life Codemotion 2014Scala @ Real Life Codemotion 2014
Scala @ Real Life Codemotion 2014
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (12)

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
 
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
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
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.
 
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
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
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
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
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...
 
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
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 

Primeros pasos con Apache Spark - Madrid Meetup

  • 1. Primeros pasos con Spark Apache Spark Madrid Meetup Daniel Higuero dhiguero@stratio.com @dhiguero 1
  • 2. •Introducción •Conceptos básicos •Ecosistema Spark •Instalación del entorno •Errores comunes Agenda 2
  • 3. 3 VIEWER DISCRETION IS ADVISED All elephants are innocent until proven guilty in a court of development Opinions expressed are solely my own and do not express the views or opinions of my employer.
  • 5. o¿Qué es Spark? oFramework de procesamiento paralelo oHistoria Introducción Apache Spark Madrid Meetup 5 https://spark.apache.org/ Apache Software Foundation
  • 6. oConcepto de programación funcional oPopularizado por Google Map-reduce 6 (map 'list (lambda (x) (+ x 10)) '(1 2 3 4)) => (11 12 13 14) (reduce #'+ '(1 2 3 4)) => 10 Jeff Dean and Sanjay Ghemawat. "MapReduce: Simplified Data Processing on Large Clusters." OSDI (2004) Apache Spark Madrid Meetup
  • 7. Map-Reduce 7 Input data Map Map Map Map Reduce Reduce Reduce result Apache Spark Madrid Meetup
  • 8. oMayor flexibilidad en la definición de transformaciones oMenor uso de almacenamiento en disco oAprovechamiento de la memoria oTolerancia a fallos oTracción de la comunidad Ventajas de Spark Apache Spark Madrid Meetup 8
  • 10. oAbstracción básica en Spark oContiene las transformaciones que se van a realizar sobre un conjunto de datos •Inmutable •Lazy evaluation •En caso de fallo se puede recuperar el estado •Control de persistencia y particionado RDD Apache Spark Madrid Meetup 10
  • 11. oRepresenta la conexión a un cluster Spark oPermite crear distintos tipos de variables •RDD •Acumuladores •Broadcast SparkContext Apache Spark Madrid Meetup 11 new SparkContext(master: String, appName: String, conf: SparkConf)
  • 13. Ecosistema Spark 13 Apache Spark Madrid Meetup © databricks
  • 14. oProporciona las abstracciones básicas y se encarga del scheduling Spark core engine 14 Apache Spark Madrid Meetup RDD DAG Scheduling Cluster manager Threads Block manager Task scheduling Worker
  • 15. oPermite transformar una fuente streaming en un conjunto de mini-batch •Definición de una ventana Temporal Spark Streaming 15 Apache Spark Madrid Meetup
  • 16. Spark Streaming 16 Apache Spark Madrid Meetup Window = 5 batch0 batch1 batch2 batch3 batch4 batch5 batch6 batch7 tiempo tiempo
  • 17. oLibrería para Machine Learning oAbstracciones útiles para cómputo oVectores, Matrices dispersas oImplementación de algoritmos conocidos oClasificación, regresión, collaborative filtering y clustering MLlib 17 Apache Spark Madrid Meetup
  • 18. oCapa de acceso SQL para ejecutar operaciones sobre RDD oSchemaRDD SparkSQL 18 Apache Spark Madrid Meetup sqlCtx = new HiveContext(sc) results = sqlCtx.sql( "SELECT * FROM people") names = results.map(lambda p: p.name) © databricks
  • 19. SparkSQL (II) 19 Apache Spark Madrid Meetup val sqlContext = new org.apache.spark.sql.SQLContext(sc) import sqlContext.createSchemaRDD case class Person(name: String, age: Int) val people = sc.textFile("examples/src/main/resources/people.txt") .map(_.split(",")) .map(p => Person(p(0), p(1).trim.toInt)) people.registerAsTable("people") val teenagers = sqlContext .sql("SELECT name FROM people WHERE age >= 13 AND age <= 19") teenagers.map(t => "Name: " + t(0)).collect().foreach(println)
  • 20. oGraphX •Soporte para grafos oSparkR •Permite conectar R con Spark oBlinkDB •Base de datos que ofrece funciones aproximadas Otros 20 Apache Spark Madrid Meetup graph = Graph(vertices, edges) messages = spark.textFile("hdfs://...") graph2 = graph.joinVertices(messages) { (id, vertex, msg) => ... }
  • 22. oURL del master oNo distribuir los JAR entre los workers oFunciones con clases no serializables oFunciona en local -> funciona en distribuido oMemory leaks y eficiencia GC en operadores oConfusión operadores (reduce vs group-by) Errores comunes #CassandraSummit 2014 22
  • 24. oDistribuciones certificadas oCertificación de desarrolladores oCentros de formación certificados Certificaciones #CassandraSummit 2014 24
  • 25. Primeros pasos con Spark Apache Spark Madrid Meetup Daniel Higuero dhiguero@stratio.com @dhiguero 25