28
Acelerando la innovación con Apache Spark Ricardo Barranco Fragoso IBM Big Data & Analytics Specialist [email protected] IBM México

Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

Acelerando la innovación

con Apache Spark

Ricardo Barranco Fragoso

IBM Big Data & Analytics Specialist

[email protected] IBM México

Page 2: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

Big Data y la Ciencia de Big Data y la Ciencia de

Datos

Page 3: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

¿Es realmente un concepto nuevo?

¿El término “ciencia de datos” tiene sentido?

¿Es tan sólo una moda? ¿Exagerado?

¿Porqué el término se volvió popular desde hace un par de

años atrás?

Entonces, la Ciencia de Datos es...?

IBM Spark

años atrás?

¿Hacia dónde va?

¿ Realmente las empresas deberían invertir en perfiles de

científicos de datos?

Page 4: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

¿Es realmente un concepto nuevo? No en realidad

¿El término “ciencia de datos” tiene sentido? Sí, transformar

ideas complejas para tomar mejores decisiones.

¿Es tan sólo una moda? ¿Exagerado? No, a veces

Entonces, la Ciencia de Datos es...?

IBM Spark

¿Porqué el término se volvió popular desde hace un par de años atrás?

Big Data, aunque puedes hacer ciencia de datos sin Big Data

¿Hacia dónde va? ¿¿¿???

¿Realmente las empresas deberían invertir en perfiles de científicos de

datos? Sí y es una buena opción

Page 5: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

���������� �� � ������� �����

����� �� ������������� ����� �� �� ���������� ����������

����� ��������� � !�"

#� ���� ��� �� #� ���� ��� �������� ��$����� ��

%������������� ������ ����&'( )���� #�� *�������'(���+� ���

Ciencia de Datos en la Historia

IBM Spark

%������������� ������ ����&'( )���� #�� *�������'(���+� ���

���� ������)�'(

����� �� �������������(�,!�-����� !�

)�!���.

�!�/��!�+����������,���0��

����� �,���.�-1���� �������

2���� �����������+�����������������

���.�2������.�3+������.

������� � � �����+1��� ����4���

�� �,�� ����# 1��������������.

Page 6: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

Hadoop es muy eficiente en procesos

batch de gran tamaño, pero tiene límites…

IBM Spark

Page 7: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

…y por más que Hadoop intente “volar”,

su desempeño se verá afectado.

IBM Spark

Page 8: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

Apache SparkApache Spark

Page 9: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

El proceso Analítico y de desarrollo hoy …. con Spark

¿Qué es Spark?

IBM Spark

complejo | disperso | limitado flexible | unificado | ilimitado

Page 10: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

• No es un repositorio de datos – Spark se integra con otros repositorios de

datos pero no proporciona uno propio.

• No es sólo para Hadoop – Spark puede ejecutarse junto con Hadoop

(especialmente HDFS), pero Spark es un sistema independiente, standalone.

Lo que NO es Spark...

IBM Spark

• No es sólo para machine learning – Spark incluye machine learning y lo hace

muy bien, pero puede manejar tareas mucho más amplias de igual forma.

• No es un reemplazo de IBM InfoSphere Streams – Spark Streaming es micro-

batching, no “real streaming”, y no puede manejar procesamiento de eventos

complejos en tiempo real (microsegundos) como lo hace IBM InfoSphere

Streams

Page 11: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

• 2002 – MapReduce @ Google

• 2004 – MapReduce paper

• 2006 – Hadoop @ Yahoo

• 2008 – Hadoop Summit

• 2010 – Spark paper (UC Berkeley)

• 2014 – Apache Spark top-level

• 2014 – 1.2.0 release in December

Breve Historia de Spark

Activity for 6 months in 2014

(from Matei Zaharia – 2014 Spark Summit)

IBM Spark

• 2015 – 1.3.0 release in March

• MapReduce comenzó como un paradigma de procesamiento general por lotes

• 2 limitantes en Hadoop

–Dificultad para programar en MapReduce

–Procesamiento en Batch no adecuado para varios casos de uso

• Spark is HOT!!!

• Es el proyecto más activo en el ecosistema de Hadoop

• Uno de los 3 proyectos más activos en Apache

Page 12: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

Apache Spark es una plataforma computacional open source de

propósito general, rápida y fácil de usar para análisis y procesos

avanzados a gran escala

•Rápido

– Procesamiento en memoria

– Más rápido que MapReduce – 100x

¿Qué es Apache Spark?

IBM Spark

•Próposito General

–Diversas cargas de trabajo

–SQL, Streaming y analíticos complejos

•Flexible y más fácil de usar que MapReduce–Escrito en Scala, (Orientado a Objetos y Funcional).

–Scala, Python y Java

–Soporte en Hadoop, YARN, Mesos, standalone o cloud

Logistic regression in Hadoop and Spark

from http://spark.apache.org

Page 13: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

Capacidades Spark: provee varios métodos

analíticos para procesar datos de diversas

fuentes

Motor de procesamiento, maneja tareas

������������������������

����� �

������

����� �

�����

������ �

��� � ��

�����

������ �

��� � ��

������

�������

������

�������

Ejecutarsentencias

SQL

Realizaranalíticos en streaming en

micro-batches

Algoritmosestadísticos

y de machine learning

Framework de grafos para

procesamientodistribuido

IBM Spark

������������������

maneja tareasdistribuidas y

funciones básicasde I/O

Gran variedad de

Fuentes de datosy formatos que

son soportados,

tanto on-premise ocloud

BigInsights

(HDFS)

Cloudant

dashDB

Object

Storage

SQL

DB

…muchosotros más

IBM CLOUD OTHER CLOUD CLOUD APPS ON-PREMISE

Page 14: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

Abstracción de Programación de Spark

Resilient – si una partición de datos en memoria se pierden, se

tiene suficiente información para que sean recreados. Esto

elimina la necesidad de replicación para lograr tolerancia a fallos.

Distributed - Colección de objetos que pueden ser almacenados

Resilient Distributed Datasets (RDD)

IBM Spark

Distributed - Colección de objetos que pueden ser almacenados

en memoria o en disco a través de un clúster.

Dataset – datos iniciales que pueden provenir de un archivo,

repositorios o ser creados programáticamente.

RDDs son la unidad fundamental de datos en Spark.

Page 15: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

// Create RDD

val quotes = sc.textFile("hdfs:/sparkdata/sparkQuotes.txt")

// Transformations

val ibmQuotes = quotes.filter(_.startsWith(“IBM"))

val ibmSpark = ibmQuotes.map(_.split(" ")).map(x => x(1))

// Caching

ibmSpark.cache()

����������������������������� ���������

Ejecución del código en Spark (1)

IBM Spark

ibmSpark.cache()

// Action

ibmSpark.filter(_.contains("Spark")).count()

IBM Spark es cool

ROOT Spark es divertido

ROOT Spark es genial

IBM Scala es elegante

ROOT Scala es flexible

File: sparkQuotes.txt

Page 16: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

// Create RDD

val quotes = sc.textFile("hdfs:/sparkdata/sparkQuotes.txt")

// Transformations

val ibmQuotes = quotes.filter(_.startsWith(“IBM"))

val ibmSpark = ibmQuotes.map(_.split(" ")).map(x => x(1))

// Caching

Ejecución del Código en Spark(2)

IBM Spark

ibmSpark.cache()

// Action

ibmSpark.filter(_.contains("Spark")).count()

IBM Spark es cool

ROOT Spark es divertido

ROOT Spark es genial

IBM Scala es elegante

ROOT Scala es flexible

File: sparkQuotes.txt RDD: quotes

Page 17: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

// Create RDD

val quotes = sc.textFile("hdfs:/sparkdata/sparkQuotes.txt")

// Transformations

val ibmQuotes = quotes.filter(_.startsWith(“IBM"))

val ibmSpark = ibmQuotes.map(_.split(" ")).map(x => x(1))

// Caching

Ejecución del Código en Spark (3)

IBM Spark

ibmSpark.cache()

// Action

ibmSpark.filter(_.contains("Spark")).count()

IBM Spark es cool

ROOT Spark es divertido

ROOT Spark es genial

IBM Scala es elegante

ROOT Scala es flexible

File: sparkQuotes.txt RDD: quotes RDD: ibmQuotes

Page 18: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

// Create RDD

val quotes = sc.textFile("hdfs:/sparkdata/sparkQuotes.txt")

// Transformations

val ibmQuotes = quotes.filter(_.startsWith(“IBM"))

val ibmSpark = ibmQuotes.map(_.split(" ")).map(x => x(1))

// Caching

Ejecución del Código en Spark (4)

IBM Spark

ibmSpark.cache()

// Action

ibmSpark.filter(_.contains("Spark")).count()

IBM Spark es cool

ROOT Spark es divertido

ROOT Spark es genial

IBM Scala es elegante

ROOT Scala es flexible

File: sparkQuotes.txt RDD: quotes RDD: ibmQuotes RDD: ibmSpark

Page 19: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

// Create RDD

val quotes = sc.textFile("hdfs:/sparkdata/sparkQuotes.txt")

// Transformations

val ibmQuotes = quotes.filter(_.startsWith(“IBM"))

val ibmSpark = ibmQuotes.map(_.split(" ")).map(x => x(1))

// Caching

Ejecución del Código en Spark (5)

IBM Spark

ibmSpark.cache()

// Action

ibmSpark.filter(_.contains("Spark")).count()

IBM Spark es cool

ROOT Spark es divertido

ROOT Spark es genial

IBM Scala es elegante

ROOT Scala es flexible

File: sparkQuotes.txt

IBM Spark es cool

ROOT Spark es divertido

ROOT Spark es genial

IBM Scala es elegante

ROOT Scala es flexible

RDD: quotes

IBM Spark es cool

IBM Scala es elegante

RDD: ibmQuotes

Spark

Scala

RDD: ibmSpark

1

Page 20: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

Spark toma el concepto de Map Reduce

en un siguiente nivel

• API de más alto nivel = desarrollo ágil y

sencillo

• Baja Latencia = procesamiento en casi tiempo

real

• Almacenamiento en memoria = hasta 100x de

mejora en desempeño

Spark vs Hadoop MapReduce

IBM Spark

mejora en desempeño

Page 21: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

� �!"��"�� ��������#���#�$�� ��%�

��������� &������� #� ���'�� �%�

�!"(��

� )���*���� � ����#��������� �

#�#��� �#�"�#� ���� � %����� ����

¿Cómo es Spark SIMILAR a

Hadoop?

¿Cómo es Spark DIFERENTEde Hadoop?

� �!"��"�� + �����$���,�*������#�

�-�#���.��� ��&���� ������#�# #�

���� /00�

� ��$��������#�# ���� ����� #�"�� #�

� %����� ������

Spark vs Hadoop

IBM Spark 1/

� )"# ������� �� ����� �

��� � #�-�#��� $�"���'��

����� � ���� -23�

� 4� ���"����� �" �� �� �����

��� ������" �#�#

� ��#�� #�����������5 �%� �����.��

�� ����� 6��� �� �7 �� #��5#���

� �"������� �"�&� ������#�� ��,��5��

8�������9#"� �-�#���

� �������� �������'�#�� ����� �

��� � �

Page 22: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

Acelerando la Innovación Acelerando la Innovación

con Spark

Page 23: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

¿Quién usa Spark y para qué?Data Engineer Application developer

'������3 ���������

Decisiones más rápidas:- Identificar procesos

lentos y corregirlos

Decisiones más rápidas en Mejores decisiones para

IBM Spark

Business Analyst Data Scientist

������+�� ���%��

����+� �

Decisiones más rápidas en tiempo real:- Detección de fraude

- Ataques DDoS

Mejores decisiones para procesos sofisticados:- Detección de anomalías

- Análisis de tendencias

- Sistemas de recomendación

Page 24: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

- Más de 100,000 conductores.- Cálculo de tarifa dinámica.

- Posición óptima de autos para

- Desacoplamiento entre la ingesta de datos (raw data) y el modelo de DW

relacional.

IBM Spark

- Posición óptima de autos para

maximizar ganancias.

- Problemas de escalabilidad (más ciudades, más choferes, más

usuarios).

- Datos del viaje contienen cientos de

miles de trayectos diarios --> Crítico

para pagar/cobrar con exactitud al chofer/usuario.

relacional.

- Almacenamiento en HDFS primero y

después procesamiento a gran escala con Spark.

- Kafka logs (datos del viaje)

almacenados en el cluster de Hadoop

y después con SparkSQL los datos JSON son convertidos en archivos

Parquet para analizarlos con Hive.

Page 25: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

Recursos AdicionalesRecursos Adicionales

Page 26: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

Spark on IBM Bluemix

IBM Spark

Page 27: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

• The Learning Spark O’Reilly book

• bigdatauniversity.com

• spark-summit.org

Recursos

IBM Spark

Page 28: Acelerando la innovación con Apache Sparkfiles.meetup.com/7770862/20151126 IBM & Apache Spark 02.pdf• 2010 – Spark paper (UC Berkeley) • 2014 – Apache Spark top-level •

IBM | SPARKPower of data. Simplicity of design. Speed of innovation.

Ricardo Barranco Fragoso

[email protected] IBM México