openanalytics madrid 2014: spark

56
Lightning-fast cluster computing @javituiter www.franciscojavierpulido.com www.exploradata.com

Upload: francisco-javier-pulido-pinero

Post on 29-Jun-2015

425 views

Category:

Engineering


3 download

DESCRIPTION

Spark - una alternativa eficiente a Hadoop

TRANSCRIPT

Page 1: OpenAnalytics Madrid 2014: Spark

Lightning-fast cluster computing

@javituiter

www.franciscojavierpulido.com www.exploradata.com

Page 2: OpenAnalytics Madrid 2014: Spark

¿Quién soy?¿?

¿?

¿?

Page 3: OpenAnalytics Madrid 2014: Spark

Sobre mí

Graduado enIngeniera del

Software

Page 4: OpenAnalytics Madrid 2014: Spark

Sobre mí

Graduado enIngeniera del

Software

Master en Sistemas en Ingeniería de la Información

Page 5: OpenAnalytics Madrid 2014: Spark

Sobre mí

Graduado enIngeniera del

Software

Especialista en

Tecnologías Big Data

Master en Sistemas en Ingeniería de la Información

Page 6: OpenAnalytics Madrid 2014: Spark

Sobre mí

Graduado enIngeniera del

Software

Master en Sistemas en Ingeniería de la Información

Especialista en

Tecnologías Big Data

Bloguero&

Tuitero

@javituiter

www.franciscojavierpulido.com

Page 7: OpenAnalytics Madrid 2014: Spark

Sobre mí

Miembro del equipowww.ExploraData.com

Page 8: OpenAnalytics Madrid 2014: Spark

Sobre mí

Page 9: OpenAnalytics Madrid 2014: Spark

¿Big Data = Hadoop?

Page 10: OpenAnalytics Madrid 2014: Spark

Hadoop

Precio

Volumende datos

Page 11: OpenAnalytics Madrid 2014: Spark

MapReduce

Page 12: OpenAnalytics Madrid 2014: Spark

Primer Problema: La Persistencia

Page 13: OpenAnalytics Madrid 2014: Spark

Segundo Problema: MapReduce

<k1, v1> -> map -> <k2, v2> <k2, v2> -> combine -> <k2, v2> <k2, v2> -> reduce -> <k3, v3>

Page 14: OpenAnalytics Madrid 2014: Spark

Tercer Problema: Cálculos iterativos

MAPCOMBINEREDUCE

Page 15: OpenAnalytics Madrid 2014: Spark

Spark

· Es un motor para el procesamiento en memoria de grandes volúmenes de datos.

· Se facilita el paradigma MapReduce (reduciendo costes y tiempos de ejecución) a gracias a los RDDs.

· Tiene API´s para Scala, Java & Python.

Page 16: OpenAnalytics Madrid 2014: Spark

La “magia”:Resilient Distributed

Datasets

Page 17: OpenAnalytics Madrid 2014: Spark

¿Qué es un RDD?

· Colecciones lógicas, inmutables y particionadas de los registros a lo largo del clúster.

Datos

Paper RDD 2011. Matei Zaharia…

Page 18: OpenAnalytics Madrid 2014: Spark

Beneficios· La consistencia se vuelve más sencilla gracias a la inmutabilidad.

· Tolerante a fallos: a través del “Lineage” los RDDs se pueden reconstruir si alguna partición se pierde.

· A pesar de que Batch Processing es un modelo restringido a una serie de casos de uso por defecto, gracias a los RDDs se puede utilizar en multitud de aplicaciones.

· Es bueno para algoritmos iterativos.

· Más rápido que Hadoop.

Page 19: OpenAnalytics Madrid 2014: Spark

Operaciones sobre RDDs

Transformations Actions

MapFilter

SampleUnion

groupByKeyreduceByKey

JoinCache

ReduceCollectCountSave

lookupKey…

Page 20: OpenAnalytics Madrid 2014: Spark

Características adicionales de Spark

Page 21: OpenAnalytics Madrid 2014: Spark

Análisis Interactivo de los Datos

· Exploración de datos mediante una Shell interactiva en Scala.

Page 22: OpenAnalytics Madrid 2014: Spark

Real Time

Page 23: OpenAnalytics Madrid 2014: Spark

Gran apoyo de la comunidad

Page 24: OpenAnalytics Madrid 2014: Spark

Clústers en Spark

Page 25: OpenAnalytics Madrid 2014: Spark

Arquitectura

Page 26: OpenAnalytics Madrid 2014: Spark

Además…

· Spark es agnóstico.

· Si las operaciones no caben en memoria, pagina a disco.

· Aplicaciones aisladas: cada aplicación tiene su propio Executor.

Page 27: OpenAnalytics Madrid 2014: Spark

Algunos ejemplos

Page 28: OpenAnalytics Madrid 2014: Spark

Variables

Broadcast:

Page 29: OpenAnalytics Madrid 2014: Spark

Variables

Broadcast:

Accumulators:

Page 30: OpenAnalytics Madrid 2014: Spark

Ejemplo 1: Paralelizar una colección

Page 31: OpenAnalytics Madrid 2014: Spark

Ejemplo 1: Paralelizar una colección

Page 32: OpenAnalytics Madrid 2014: Spark

Ejemplo 1: Paralelizar una colección

Creamos la colleción

Page 33: OpenAnalytics Madrid 2014: Spark

Ejemplo 1: Paralelizar una colección

Action

Page 34: OpenAnalytics Madrid 2014: Spark

Ejemplo 2: Utilizar Datasets

Page 35: OpenAnalytics Madrid 2014: Spark

Ejemplo 2: Utilizar Datasets

Cargar archivo en variable

Page 36: OpenAnalytics Madrid 2014: Spark

Ejemplo 2: Utilizar Datasets

Action

Page 37: OpenAnalytics Madrid 2014: Spark

Ejemplo 3: Utilizar Datasets de HDFS

Page 38: OpenAnalytics Madrid 2014: Spark

Ejemplo 3: Utilizar Datasets de HDFS

Cargar archivo de HDFS en variable

Page 39: OpenAnalytics Madrid 2014: Spark

Ejemplo 3: Utilizar Datasets de HDFS

Action

Page 40: OpenAnalytics Madrid 2014: Spark

Ejemplo 4: MapReduce Wordcount

Page 41: OpenAnalytics Madrid 2014: Spark

Ejemplo 4: MapReduce Wordcount

Leemos de HDFS

Page 42: OpenAnalytics Madrid 2014: Spark

Ejemplo 4: MapReduce Wordcount

“MapReducimos” el texto

Page 43: OpenAnalytics Madrid 2014: Spark

Ejemplo 4: MapReduce Wordcount

Guardamos en HDFS

Page 44: OpenAnalytics Madrid 2014: Spark

Benchmarks

Page 51: OpenAnalytics Madrid 2014: Spark

¿Quién lo utiliza?

Page 54: OpenAnalytics Madrid 2014: Spark

Conclusiones

Page 55: OpenAnalytics Madrid 2014: Spark

Conclusiones

· Spark está ahí fuera.

· Extremadamente sencillo de instalar para jugar con el >> Para pasar a producción hacen falta especialistas.

· Spark es más rápido para ciertos casos de uso.

· Si utilizas Hadoop, prueba Spark.

· Es sencillo mezclar Batch Processing con Real Time.

· Se puede utilizar Scala, Java & Python.

Page 56: OpenAnalytics Madrid 2014: Spark

Gracias

@javituiter

www.franciscojavierpulido.com www.exploradata.com