Primeros pasos con Apache Spark - Madrid Meetup
-
Upload
dhiguero -
Category
Technology
-
view
691 -
download
0
description
Transcript of Primeros pasos con Apache Spark - Madrid Meetup
• 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?
o Framework de procesamiento paralelo
o Historia
Introducción
Apache Spark Madrid Meetup 5
https://spark.apache.org/
Apache Software Foundation
o Concepto de programación funcional
o Popularizado 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
o Mayor flexibilidad en la definición de transformaciones
o Menor uso de almacenamiento en disco
o Aprovechamiento de la memoria
o Tolerancia a fallos
o Tracción de la comunidad
Ventajas de Spark
Apache Spark Madrid Meetup 8
Conceptos básicos
9
o Abstracción básica en Spark
o Contiene 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
o Representa la conexión a un cluster Spark
o Permite 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
o Proporciona 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
o Permite 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
o Librería para Machine Learning
o Abstracciones útiles para cómputo
o Vectores, Matrices dispersas
o Implementación de algoritmos conocidos
o Clasificación, regresión, collaborative filtering y clustering
MLlib
17 Apache Spark Madrid Meetup
o Capa de acceso SQL para ejecutar operaciones sobre RDD
o SchemaRDD
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)
o GraphX
• Soporte para grafos
o SparkR
• Permite conectar R con Spark
o BlinkDB
• 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
o URL del master
o No distribuir los JAR entre los workers
o Funciones con clases no serializables
o Funciona en local -> funciona en distribuido
o Memory leaks y eficiencia GC en operadores
o Confusión operadores (reduce vs group-by)
Errores comunes
#CassandraSummit 2014 22
Certificaciones
23
o Distribuciones certificadas
o Certificación de desarrolladores
o Centros de formación certificados
Certificaciones
#CassandraSummit 2014 24