OpenAnalytics Madrid 2014: Spark

Post on 29-Jun-2015

425 views 3 download

Tags:

description

Spark - una alternativa eficiente a Hadoop

Transcript of OpenAnalytics Madrid 2014: Spark

Lightning-fast cluster computing

@javituiter

www.franciscojavierpulido.com www.exploradata.com

¿Quién soy?¿?

¿?

¿?

Sobre mí

Graduado enIngeniera del

Software

Sobre mí

Graduado enIngeniera del

Software

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

Sobre mí

Graduado enIngeniera del

Software

Especialista en

Tecnologías Big Data

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

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

Sobre mí

Miembro del equipowww.ExploraData.com

Sobre mí

¿Big Data = Hadoop?

Hadoop

Precio

Volumende datos

MapReduce

Primer Problema: La Persistencia

Segundo Problema: MapReduce

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

Tercer Problema: Cálculos iterativos

MAPCOMBINEREDUCE

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.

La “magia”:Resilient Distributed

Datasets

¿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…

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.

Operaciones sobre RDDs

Transformations Actions

MapFilter

SampleUnion

groupByKeyreduceByKey

JoinCache

ReduceCollectCountSave

lookupKey…

Características adicionales de Spark

Análisis Interactivo de los Datos

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

Real Time

Gran apoyo de la comunidad

Clústers en Spark

Arquitectura

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.

Algunos ejemplos

Variables

Broadcast:

Variables

Broadcast:

Accumulators:

Ejemplo 1: Paralelizar una colección

Ejemplo 1: Paralelizar una colección

Ejemplo 1: Paralelizar una colección

Creamos la colleción

Ejemplo 1: Paralelizar una colección

Action

Ejemplo 2: Utilizar Datasets

Ejemplo 2: Utilizar Datasets

Cargar archivo en variable

Ejemplo 2: Utilizar Datasets

Action

Ejemplo 3: Utilizar Datasets de HDFS

Ejemplo 3: Utilizar Datasets de HDFS

Cargar archivo de HDFS en variable

Ejemplo 3: Utilizar Datasets de HDFS

Action

Ejemplo 4: MapReduce Wordcount

Ejemplo 4: MapReduce Wordcount

Leemos de HDFS

Ejemplo 4: MapReduce Wordcount

“MapReducimos” el texto

Ejemplo 4: MapReduce Wordcount

Guardamos en HDFS

Benchmarks

¿Quién lo utiliza?

Conclusiones

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.

Gracias

@javituiter

www.franciscojavierpulido.com www.exploradata.com