PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio...

32
Meetup Big Data. México, D.F. 29 de julio de 2015 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Dr. Gabriel Guerrero www.saxsa.com.mx

Transcript of PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio...

Page 1: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

Meetup Big Data. México, D.F.

29 de julio de 2015

PLATAFORMA SPARK:

CATAPULTA MACHINE LEARNING

Dr. Gabriel Guerrero

www.saxsa.com.mx

Page 2: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

Introducción

La catapulta de Leonardo, una herramienta genial. Permite con

poco esfuerzo enviar un objeto pesado a gran distancia.

La plataforma Spark, es una catapulta del Aprendizaje

Automatizado (ML Machine Learning).

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Meetup Big Data. México, D.F.

29 de julio de 2015 2

Page 3: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Meetup Big Data. México, D.F.

29 de julio de 2015

El marco de referencia (framework) Spark permite

a los algoritmos y técnicas del Aprendizaje

Automatizado (ML), llegar a horizontes de aplicación

inusitados

INUSITADO. Adjetivo. Que es inusual o raro y por

ello resulta sorprendente. No habitual

3

Page 4: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

¿Cuándo surge?

En 2009, el proyecto Spark inicia en la Universidad de California en Berkeley con los

trabajos de tesis doctoral de Matei Zaharia, quien es un alumno de los profesores Ion

Stoica y Michael Franklin.

Meetup Big Data. México, D.F.

29 de julio de 2015 4

Page 5: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

¿Cuándo surge Spark? (cont.)

En 2010, se pone a disposición como Código Abierto (Open Source) con licenciamiento

tipo BSD.

En 2013, el proyecto se ofrece a la Apache Software Foundation y su licenciamiento se

ofrece como tipo Apache 2.0.

En 2014, el marco de referencia Spark se convierte en proyecto tipo Apache Top-Level

Project. Se acelera su divulgación y uso de forma vertiginosa.

Meetup Big Data. México, D.F.

29 de julio de 2015 5

Page 6: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

¿Cómo surge?En una entrevista, el Profesor Ion Stoica nos cuenta la historia:

“…Por los años 2009, se tenía un proyecto denominado

Nexus, derivado del curso Temas Avanzados de Ciencias

de la Computación (“Advanced Topics in Computer

Systems”) del Prof. David Culler, el cual cambió de nombre

posteriormente a Mesos por cuestiones de derechos de

autor con otro proyecto con ese mismo nombre.”

(https://soundcloud.com/oreilly-radar/apache-sparks-

journey-from-academia-to-industry)

Meetup Big Data. México, D.F.

29 de julio de 2015 6

Page 7: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Este proyecto escolar inicial, derivó en la construcción del sistema Mesos como un

sistema de manejo de un cluster, en el que colaboran Benjamin Hindman, Andy

Konwinski, y Matei Zaharia.

El sistema Mesos es un marco de referencia (framework) para el manejo de un cluster.

Soporta varios diferentes tipos de sistemas de cluster (cluster management framework,

which can support different kind of cluster computing systems).

Meetup Big Data. México, D.F.

29 de julio de 2015 7

Page 8: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Uno de los tesistas era Benjamin Hindman, quien fue contratado por Twitter

y donde fue uno de los promotores de BigData en Twitter.

El sistema Mesos se documenta y presenta en el artículo: “A Common

Substrate for Cluster Computing”, que puede consultarse en:

https://www.usenix.org/legacy/event/hotcloud09/tech/full_papers/hindman.pdf

Recientemente, Hindman se incorpora a Mesosphere, una compañía que

promueve Mesos.

Meetup Big Data. México, D.F.

29 de julio de 2015 8

Page 9: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Así en el año 2009 se tenía el marco de referencia Mesos.

Se deseaba mostrar que podía construirse utilizando este marco

de referencia, un ambiente de cómputo distribuido al estilo

Hadoop, pero mejorando los aspectos de cómputo iterativo e

interactivo que eran debilidades del aspecto procesamiento de

Hadoop MapReduce.

Meetup Big Data. México, D.F.

29 de julio de 2015 9

Page 10: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Dentro de las principales aplicaciones de cómputo iterativo e

interactivo tenemos precisamente las técnicas de Aprendizaje

Automatizado (Machine Learning).

Y así nace Spark como un proyecto que se construye utilizando

el marco de referencia Mesos para ofrecer un ambiente de

cómputo distribuido tolerante a fallas que soportara procesos

iterativos e interactivos como los requiere el Aprendizaje

Automatizado.

Meetup Big Data. México, D.F.

29 de julio de 2015 10

Page 11: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

En esa época la Universidad de Berkeley desarrollaba un proyecto

para utilizar Hadoop Map/Reduce para técnicas y algoritmos

de ML (Machine Learning), que tenía diversos

inconvenientes.

Por lo cual uno de los principales objetivos de Spark era ofrecer

soporte a algoritmos de Aprendizaje Automatizado en un

contexto de Grandes Volúmenes para sistemas iterativos e

interactivos.

Meetup Big Data. México, D.F.

29 de julio de 2015 11

Page 12: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

En esas fechas por los pasillos de la UC Berkeley existía un ambiente de

investigación promovida por Michael Franklin, con el fin de impulsar

sistemas que permitan el manejo de grandes volúmenes, con una

perspectiva de aplicación a sistemas de análisis y toma de decisiones

fundamentada en Aprendizaje Automatizado.

Lo que ahora se denomina Analíticos en Grandes Volúmenes

(Big Data Analytics).

En ese entonces se tenía el RADLab  (Reliable And Distributed computing

Lab) . Desde 2009, gran parte de las investigaciones y tesis doctorales se

enfocan en Big Data y Analíticos de Grandes Volúmenes de Datos.

Meetup Big Data. México, D.F.

29 de julio de 2015 12

Page 13: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

La entrevista a Michael Franklin se encuentra en

https://medium.com/s-c-a-l-e/amplab-s-co-creator-on-where-big-data-is-

headed-and-why-spark-is-so-big-f0c0da2f7c0f

Así, en 2011, Michael Franklin y Ion Stoica, con financiamientos de la

Iniciativa BigData Obama y de empresas como Amazon WebServices,

Google, SAP y otras crean el AMPLab (Algorithms Machines

People).

Meetup Big Data. México, D.F.

29 de julio de 2015 13

Page 14: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Spark ofrece también soporte para un sistema de enunciados SQL interactivos, como los

requeridos por la compañía Conviva para el manejo de video y sistemas analíticos.

En un inicio, el problema de la distribución de video era como realizar decisiones

inteligentes para rutear y transmitir video en tiempo real sin fallas en la transmisión en una

red Internet con fallas.

La compañía Conviva, fundada en 2006, monitorea y

optimiza video en línea para las proveedoras de video en

tiempo real más importantes, en donde el Dr. Ion Stoica,

es cofundador y CTO (Chief Technology Officer).

Meetup Big Data. México, D.F.

29 de julio de 2015 14

Page 15: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

La plataforma Conviva es un sistema en tiempo real que permite a los proveedores de

contenido en Internet en formato video (video streaming) ofrecer el contenido con calidad de

TV en Internet, sin importar las fallas de red y conectividad Internet.

Hoy Conviva maneja más de 4 mil millones de torrentes de videos (video streaming), con más

de 1.6 mil millones de dispositivos y más de 200 proveedores de servicios de Video en

Internet.

Meetup Big Data. México, D.F.

29 de julio de 2015 15

Page 16: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Así otra de los requerimientos que se deseaba en Spark es trabajar torrentes de datos

(Spark Streaming) y enunciados (SQL) de extracción en grandes volúmenes de datos (SQL

Spark), lo que motivo líneas de investigación del Prof. Ion Stoica y los tesistas de la

Universidad de California en Berkeley (UC Berkeley).

Meetup Big Data. México, D.F.

29 de julio de 2015 16

Page 17: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Antecedentes de Spark

Antes del mundo Spark surgieron una gran diversidad de contribuciones y sistemas del

cómo manejar datos para su búsqueda y análisis

●1962 Árbol AVL (Georgy Adelson-Velsky y Yevgeni Mijáilovich Landis)

Esta es la estructura de Árbol AVL propuesto por los matemáticos rusos, que ofrece la

mejor forma de almacenar contenido para su búsqueda.

Meetup Big Data. México, D.F.

29 de julio de 2015 17

Page 18: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

● 1992. Berkeley DB.

Bibliotecas de instrumentación del concepto AVL que fueron propuestas dentro

del sistema de archivos Unix y que, en una instrumentación fuera de Unix,

ofrecen unos investigadores de UC Berkeley, fundando una compañía:

Sleepycat.

Esta biblioteca se mejora e instrumenta en forma de código inmerso para crear

el concepto de Base de datos inmersa (Embedded database)

Meetup Big Data. México, D.F.

29 de julio de 2015 18

Page 19: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

● 2003 Berkeley DB XML

● 2003 Google File System

● 2004 Berkeley DB JavaEdition

● 2004 MapReduce

● 2006 Berkeley DB Oracle 2006

● 2006 BigTable

● 2008 Dremel

Meetup Big Data. México, D.F.

29 de julio de 2015 19

Page 20: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Bibliotecas Spark

El marco de referencia (framework) Spark ofrece un conjunto de bibliotecas para el desarrollo

de aplicaciones. Entre las bibliotecas básicas integradas en la versión núcleo se tienen:

Meetup Big Data. México, D.F.

29 de julio de 2015 20

Page 21: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Spark SQL Es el modulo para el trabajo con datos estructurados.

Spark Streaming permite la construcción sencilla de aplicaciones escalables y tolerantes a

fallas utilizando torrentes de datos.

MLlib es una biblioteca escalable con algoritmos de Aprendizaje Automatizado (scalable

machine learning library).

GraphX es la biblioteca de Apache Spark para grafos y cómputo paralelo de grafos.

Meetup Big Data. México, D.F.

29 de julio de 2015 21

Page 22: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

BDAS, Berkeley Data Analytics Stack

Con el objetivo de ofrecer un ambiente integral para el conjunto de aplicaciones de grandes

volúmenes de datos distribuidos y tolerante a fallos, el marco de referencia (framework)

Spark continúa añadiendo componentes en una forma unificada.

Este es el proyecto BDAS (Berkeley Data Analytics Stack)

Meetup Big Data. México, D.F.

29 de julio de 2015 22

Page 23: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

BDAS es una pila de aplicaciones de código abierto (open source software stack) que integra las

componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del

concepto de Analíticos de Grandes Volúmenes (BigData Analytics)

Meetup Big Data. México, D.F.

29 de julio de 2015 23

Page 24: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Algoritmos de Aprendizaje Automatizado (ML) en Spark

MLlib es la biblioteca de Spark que es escalable de algoritmos de Aprendizaje Automatizado

(Machine Learning Library) que incluye herramientas como clasificación (classification),

regresión (regression), agrupación (clustering), filtrado colaborativo (collaborative filtering),

reducción de dimensiones (dimensionality reduction).

Meetup Big Data. México, D.F.

29 de julio de 2015 24

Page 25: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Hoy la idea es NO INVENTAR EL AGUA TIBIA en el Aprendizaje Automatizado de Grandes

Volúmenes de Datos (BigData Analytics), y aplicar el tipo de algoritmo más conveniente a un

problema y NO PROGRAMAR DESDE EL INICIO los algoritmos.

Hoy debemos pensar en los Algoritmos de Aprendizaje Automatizado

como instrumentos o utensilios como en una analogía de un gran banquete

Meetup Big Data. México, D.F.

29 de julio de 2015 25

Page 26: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Hoy los comensales quieren bocadillos y banquetes JUSTO A TIEMPO y de FORMA

INSTANTANEA (Streaming) para una gran población (usuarios Internet) en un extenso

territorio (cobertura Internet), sin importar si en la cocina se prepararon con el mejor horno (Spark y BDAS) y las mejores recetas (Algoritmos ML eficientes) !!

Meetup Big Data. México, D.F.

29 de julio de 2015 26

Page 27: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Hoy Spark ofrece uno de los mejores instrumentos con una gran variedad de “recetas de

ML”, en particular ya se cuenta en MLlib 1.3 los siguientes algoritmos listos para utilizarse:

Ver página Spark ML

http://spark.apache.org/docs/latest/mllib-guide.html

Meetup Big Data. México, D.F.

29 de julio de 2015 27

Page 28: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

• Tipos de datos

• Estadísticas Básicas

• Estadísticas de Resumen

• Correlación

• Muestreo estratificado

• Prueba de hipótesis

• Generación aleatoria de datos

• Clasificación y regresión

• Modelos lineales (Máquinas de vectores de soporte

[SVMs], regresión logística, regresión lineal)

• Clasificador Bayesiano ingenuo

• Árboles de decisión

• Conjuntos de Árboles (Bosques Aleatorios y

Árboles de decisión impulsados)

• Regresión Isotónica

Meetup Big Data. México, D.F.

29 de julio de 2015 28

Page 29: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

• Filtrado Colaborativo

• Mínimos Cuadrados Alternantes (ALS)

• Agrupamiento

• K-medias

• Mezclas Gaussianas

• Agrupamiento por método de las potencias (PIC)

• Asignación latente de Dirichlet (LDA)

• Streaming de K-medias

• Reducción de dimensión

• Descomposición de valor único (SVD)

• Análisis de componentes principales (PCA)

• Extracción y transformación de características

• Minería por patrones frecuentes

• Crecimiento FP

• Optimización (desarrollador)

• Método de gradiente descendente estocástico

• Límite de memoria BFGS (L-BFGS)

• Exportación de modelos PMML

Meetup Big Data. México, D.F.

29 de julio de 2015 29

Page 30: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Resumen

Hoy la plataforma Spark y los algoritmos de Aprendizaje

Automatizado incluidos en sus bibliotecas ofrecen a la

Ciencia de Datos (Data Science) una Catapulta para

promover la generación de aplicaciones de Analíticos de

Grandes Volúmenes de Datos (BigData Analytics),

en particular en la rama de Aprendizaje Automatizado en Tiempo Real

utilizando la componente Spark Streaming y SQL Sparkpara la extracción de información con enunciados SQL.

Meetup Big Data. México, D.F.

29 de julio de 2015 30

Page 31: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

Meetup Big Data. México, D.F.

29 de julio de 2015 31

Page 32: PLATAFORMA SPARK: CATAPULTA MACHINE … · componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes

PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING

¿Qué aprenderás?

1. El uso de Apache Hadoop y Spark con el lenguaje de programación Scala en forma local y cluster

2. Ejemplos de aplicación de SQL Spark, Minería de Datos (Data Mining) con bibliotecas Machine

Learning (ML) y de Bases de Datos de Grafos con Spark GraphX. Se realizan ejercicios con lenguaje

Scala de creación de grafos y algoritmos ML, como “clasificación”, “regresión” y “agrupación”, entre

otros.

3. Manejo de torrentes de datos (Data Streaming) con ejemplos de utilización de Spark Streaming con

fuentes de datos de Twitter y sockets TCP/UDP

4. Una breve introducción al sistema Apache Kakfa de mensajería tipo “publicar y suscribir” (publish-

subscribe messaging system)

Meetup Big Data. México, D.F.

29 de julio de 2015 32