SlideShare una empresa de Scribd logo
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

Procesamiento masivo de datos en MongoDB
Procesamiento masivo de datos en MongoDBProcesamiento masivo de datos en MongoDB
Procesamiento masivo de datos en MongoDB
Stratio
 
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...
Socialmetrix
 
Meetup Spark 2.0
Meetup Spark 2.0Meetup Spark 2.0
Spark web meetup
Spark web meetupSpark web meetup
Spark web meetup
Jorge Lopez-Malla
 
Fun[ctional] spark with scala
Fun[ctional] spark with scalaFun[ctional] spark with scala
Fun[ctional] spark with scala
David Vallejo Navarro
 
Panorama BigData (OpenExpo2017)
Panorama BigData (OpenExpo2017)Panorama BigData (OpenExpo2017)
Panorama BigData (OpenExpo2017)
Javier Gómez Santos
 
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
Software Guru
 
Innovación Amazon
Innovación AmazonInnovación Amazon
Innovación Amazon
Software Guru
 
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
Software Guru
 
Paralelismo en SQL Server
Paralelismo en SQL ServerParalelismo en SQL Server
Paralelismo en SQL Server
Enrique Catala Bañuls
 
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
Ruben Gómez García
 
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
Daniel Mazzini
 
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
Raul Martin Sarachaga Diaz
 
Arquitectura Multitenant en Oracle 12c
Arquitectura Multitenant en Oracle 12cArquitectura Multitenant en Oracle 12c
Arquitectura Multitenant en Oracle 12c
Nuvola Consulting Group
 
Elastic search
Elastic searchElastic search
Elastic search
BBVA Bancomer
 

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

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
Socialmetrix
 
Learn to use Stratio Crossdata
Learn to use Stratio CrossdataLearn to use Stratio Crossdata
Learn to use Stratio Crossdata
Álvaro Agea Herradón
 
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...
Álvaro Agea Herradón
 
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
 
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!
Diego López-de-Ipiña González-de-Artaza
 
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
SpanishPASSVC
 
Big data big opportunities
Big data big opportunitiesBig data big opportunities
Big data big opportunities
Abel Alejandro Coronado Iruegas
 
Spark Hands-on
Spark Hands-onSpark Hands-on
Spark Hands-on
Gaspar Muñoz Soria
 
Adios hadoop, Hola Spark! T3chfest 2015
Adios hadoop, Hola Spark! T3chfest 2015Adios hadoop, Hola Spark! T3chfest 2015
Adios hadoop, Hola Spark! T3chfest 2015
dhiguero
 
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...
Diego López-de-Ipiña González-de-Artaza
 
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
Diego López-de-Ipiña González-de-Artaza
 
Cloud Computing: una perspectiva tecnológica
Cloud Computing: una perspectiva tecnológicaCloud Computing: una perspectiva tecnológica
Cloud Computing: una perspectiva tecnológica
Diego López-de-Ipiña González-de-Artaza
 
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
Diego López-de-Ipiña González-de-Artaza
 
Spark shuffle introduction
Spark shuffle introductionSpark shuffle introduction
Spark shuffle introduction
colorant
 
Google Cloud Platform y Python
Google Cloud Platform y PythonGoogle Cloud Platform y Python
Google Cloud Platform y Python
Carlos Toxtli
 
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
Cloud Foundry Foundation
 
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
Diego López-de-Ipiña González-de-Artaza
 
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
Abel Alejandro Coronado Iruegas
 

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

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
Jorge Lopez-Malla
 
Spark meetup barcelona
Spark meetup barcelonaSpark meetup barcelona
Spark meetup barcelona
Jorge Lopez-Malla
 
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
Eduardo Castro
 
Meetup Fun[ctional] spark with scala
Meetup Fun[ctional] spark with scalaMeetup Fun[ctional] spark with scala
Meetup Fun[ctional] spark with scala
José Carlos García Serrano
 
Introducción a Apache Spark
Introducción a Apache SparkIntroducción a Apache Spark
Introducción a Apache Spark
Socialmetrix
 
Computación distribuida usando Python
Computación distribuida usando PythonComputación distribuida usando Python
Computación distribuida usando Python
Jose Manuel Ortega Candel
 
Cassandra Meetup
Cassandra MeetupCassandra Meetup
Cassandra Meetup
Stratebi
 
Spark
SparkSpark
Resilient Distributed Dataset - Analisis paper
Resilient  Distributed Dataset - Analisis paper Resilient  Distributed Dataset - Analisis paper
Resilient Distributed Dataset - Analisis paper
Javier de la Rosa Fernandez
 
Meetup Junio Apache Spark Fundamentals
Meetup Junio Apache Spark FundamentalsMeetup Junio Apache Spark Fundamentals
Meetup Junio Apache Spark Fundamentals
DataLab Community
 
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?
Fernando Alfonso Casas De la Torre
 
Congreso Academy Journal Celaya 2017
Congreso Academy Journal Celaya 2017Congreso Academy Journal Celaya 2017
Congreso Academy Journal Celaya 2017
Fernando Alfonso Casas De la Torre
 
Herramientas de visualización de datos
Herramientas de visualización de datosHerramientas de visualización de datos
Herramientas de visualización de datos
BBVA API Market
 
Introduccion a databricks
Introduccion a databricksIntroduccion a databricks
Introduccion a databricks
Eduardo Castro
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apis
CloudAppi
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera API
CloudAppi
 
M04 09 20_v05_plataformas_bd
M04 09 20_v05_plataformas_bdM04 09 20_v05_plataformas_bd
M04 09 20_v05_plataformas_bd
russellmrr
 
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
Amazon Web Services LATAM
 
Codemotion 2014 Scala @real life
Codemotion 2014 Scala @real lifeCodemotion 2014 Scala @real life
Codemotion 2014 Scala @real life
Javier Santos Paniego
 
Scala @ Real Life Codemotion 2014
Scala @ Real Life Codemotion 2014Scala @ Real Life Codemotion 2014
Scala @ Real Life Codemotion 2014
David Vallejo Navarro
 

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
 
Spark
SparkSpark
Spark
 
Resilient Distributed Dataset - Analisis paper
Resilient  Distributed Dataset - Analisis paper Resilient  Distributed Dataset - Analisis paper
Resilient Distributed Dataset - Analisis paper
 
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

Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 

Último (20)

Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 

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