SlideShare a Scribd company logo
1 of 21
Sparkling Water
Pol Sanz
Oriol Mauri
SIO – URV 2017
Índex
 Introducció a Sparkling Water
 Conceptes Clau
 Data Munging
 Scoring
 Característiques, Spark i H2O
 Cicle de Vida
 Arquitectura i Tractament de Dades
 Casos d'ús
 Exemples d´ús
 Començar amb Sparkling Water
 Conclusions
Introducció
 Spark
 Plataforma open-source optimitzada per gran manegaments de dades (big data)
 H2O
 Producte open-source basat en l'escalabilitat del machine learning i "data science".
 Sparkling Water és el resultat de combinar el millor de les dues tecnologies
 Algoritmes escalables de machine learning amb l'ecosistema i les capacitats d'Spark API
 Suporta Scala, R y Python a través de H20 Flow UI
Data Munging
 Donar forma a un conjunt de dades desordenat, també conegut data wrangling.
 Al realitzar un anàlisi de dades (aplicar un model analític), es seleccionen unes característiques
que han de tenir les dades abans d'aplicar el model
 Totes les operacions que es fan a un conjunt de dades sense procesar per netejarlo, es coneix
com Data munging.
 A vegades, el Data munging crea dades derivades, com identificadors únics o d'altre informació
necessaria.
Scoring
 Técnica per avaluar la probabilitat de que un individu compleixi un objetiu previst
 S'obté de diverses quantitats i qualitats de dades disponibles de l'individu
 Dades socio-demogràfiques, comportaments de compra, respostes anteriors
 Regressió logística, classificacions (falsos positius)
 Exemples
 Determinar la viabilitat d'un client que vol demanar un crèdit (edad, feina, ingresos, préstecs...)
 Millor àrea d'implantació d'una fàbrica en funció de les característiques d'una població (habitants, cicle
de vida, mitjana edad...)
Característiques
Spark
 Eficiencia en memòria
 Rapidesa computacional
 Algoritmes de Machine learning
 Parser, GUI, interficie-R
H20
 API fàcil d'usar (intuïtiva)
 Gran comunitat activa
 Components per la plataforma –
SQL
 Multitenacy
Comparació de Sparkling Water amb Spark
+ H20
 Quin hauria de fer servir?
 Depèn de les necessitats del usuari
 Perquè utilitzar Sparkling Water, i no desenvolupar un model POJO i Spark mateix?
 L'ús esperat de SW es per tenir H20 disponible a dins d'un context Spark.
 Útil per training: es poden aprofitar diferents data conectors, capacitats de munging...
 Un model POJO/MOJO + Spark es suficient per fer scoring
 És necessari quan vols utilitzar algoritmes de H20 en harmonía amb l'ecosistema Spark.
El que ens proporciona Sparkling Water
 Integració de manera transparent de la plataforma de machine learning d' H2O amb
l'ecosistema de Spark
 Ús de les estructures de dades d'H2O (H2O Frame) i algoritmes amb l'API de Spark
Arquitectura de dades: RDD
 Perquè aquesta arquitectura de dades?
 Problema al guardar informació en sistemes distribuits (reutilització, compartiment)
 Processos lents ja que involucren moltes operacions E/S com repliques i serialitzacions
 Solució: Tolerancia a fallades distribuida en memòria dels càlculs
 Resilient Distributed Datasets
 Inmutable
 Particionat
 Tolerant a fallades
 Avaluació dèbil (no estricte ni repetida)
 Persistent
Cicle de vida de Sparkling Water
1. $ spark-submit
2. Spark Worker JVM
3. Spark Executor JVM
4. H2O
5. Main App (Scala)
Tractament de les Dades
2. De Spark RDD a H2O RDD
Dues Copies: a Spark RDD i a H2O Frame
(columnes de dades comprimides sobre les
que operen els algoritmens de H2O)
3. Retorna les prediccions resultants
1. Spark SQL llegeix de Dades origen
(de HDFS a Spark RDD)
Dades a Spark Executor JVM
Casos d'ús – Model building
1. Data source
2. Data munging
3. Modelling
4. Prediction processing
Casos d'us – Data parsing munging
1.Data source
2.Data load / munging /
exploration(Spark + H20)
3. Modelling (H20)
Casos d'us
Stream processing, Off-line Data training
1. Processar dades
2. Exportar el model
3.(binari o codi)
4. Processar el model
5. Fer prediccions
Exemples
• Crear un Model: amb dades meteorològiques i dates de vols per predïr el
retràs d'aquests de Barcelona a Londres
• A partir de twitts, a quina hora twitteja la persona i quins continguts
escriu, saber si aquesta persona està a l'atur o no i quina ideologia
política té
• Mirar si hi ha relació entre el mapa de les persones que escriu missatges
rasistes a les xarxes socials amb el mapa de les colonies del Ku Klux Klan
Requeriments d'ús
 Linux/OS X/Windows
 Java 7+
 Spark 1.6+
 Sparkling Water es desenvolupa en diferents branques paral·leles segons per cada
versió Spark
 Configurar la variable shell SPARK_HOME per a que apunti al directori d'instalació
d'Spark
 export SPARK_HOME="/path/to/spark/installation" .
 export MASTER="local-cluster[3,2,1024]"
 import org.apache.spark.h2o._
val h2oContext = new H2OContext(sc).start()
import h2oContext._
Instal·lar i Executar
 Desenpaquetar el zip
 Configura el SPARK_HOME per la instal·lació del Spark
 Executar la shell:
$ /bin/sparkling-shell
Conclusió
 Sparkling Water és l’eina perfecte per aquelles persones que vulguin iniciarse en
l’àmbit de ‘machine learning’ i ja coneguin l’ecosistema que ofereix Spark per
tractar amb ‘big data’, tot integrat dins d’un sol entorn.
 La comunitat de la plataforma és molt activa, i al ser open-source, el progrés de
Sparkling Water és constant.
Gràcies per la
vostra atenció
Pol Sanz
Oriol Mauri
SIO – URV 2017

More Related Content

Similar to Sparkling Water

Presentació de Microsoft SQL server 2012
Presentació de Microsoft SQL server 2012Presentació de Microsoft SQL server 2012
Presentació de Microsoft SQL server 2012Roger Casadejús Pérez
 
Big data Curs del Cibernarium de Barcelona 2013
Big data Curs del Cibernarium de Barcelona 2013Big data Curs del Cibernarium de Barcelona 2013
Big data Curs del Cibernarium de Barcelona 2013Marc Pous
 
Una visió "dels" del món Open Source: el cas de Castellbisbal [Fórum TIG/SIG ...
Una visió "dels" del món Open Source: el cas de Castellbisbal [Fórum TIG/SIG ...Una visió "dels" del món Open Source: el cas de Castellbisbal [Fórum TIG/SIG ...
Una visió "dels" del món Open Source: el cas de Castellbisbal [Fórum TIG/SIG ...Oscar Fonts
 
Comparativa ERPs de programari lliure
Comparativa ERPs de programari lliureComparativa ERPs de programari lliure
Comparativa ERPs de programari lliureejordi
 
Disseny estructurat d'aplicacions
Disseny estructurat d'aplicacionsDisseny estructurat d'aplicacions
Disseny estructurat d'aplicacionssusannafabla
 
Sessió 4 Tècnics - Programa formatiu Dades Obertes per Entitats sense Ànim de...
Sessió 4 Tècnics - Programa formatiu Dades Obertes per Entitats sense Ànim de...Sessió 4 Tècnics - Programa formatiu Dades Obertes per Entitats sense Ànim de...
Sessió 4 Tècnics - Programa formatiu Dades Obertes per Entitats sense Ànim de...Iniciativa Barcelona Open Data
 
Disseny de l’entorn de desenvolupament J2EE del Servei de Recursos Informàtic...
Disseny de l’entorn de desenvolupament J2EE del Servei de Recursos Informàtic...Disseny de l’entorn de desenvolupament J2EE del Servei de Recursos Informàtic...
Disseny de l’entorn de desenvolupament J2EE del Servei de Recursos Informàtic...Tomàs Reverter
 
Migració al programari lliure: reptes i oportunitats
Migració al programari lliure: reptes i oportunitatsMigració al programari lliure: reptes i oportunitats
Migració al programari lliure: reptes i oportunitatsIsmael Fanlo
 
Object Reuse and Exchange (OAI- ORE)
Object Reuse and Exchange (OAI- ORE)Object Reuse and Exchange (OAI- ORE)
Object Reuse and Exchange (OAI- ORE)Ricard de la Vega
 

Similar to Sparkling Water (20)

Curs 1.4 Reutilització de Dades Obertes 21/03
Curs 1.4 Reutilització de Dades Obertes 21/03Curs 1.4 Reutilització de Dades Obertes 21/03
Curs 1.4 Reutilització de Dades Obertes 21/03
 
Presentació de Microsoft SQL server 2012
Presentació de Microsoft SQL server 2012Presentació de Microsoft SQL server 2012
Presentació de Microsoft SQL server 2012
 
Curs 1. 4. Reutilització de Dades Obertes
Curs 1. 4. Reutilització de Dades ObertesCurs 1. 4. Reutilització de Dades Obertes
Curs 1. 4. Reutilització de Dades Obertes
 
What DB?
What DB?What DB?
What DB?
 
Big data Curs del Cibernarium de Barcelona 2013
Big data Curs del Cibernarium de Barcelona 2013Big data Curs del Cibernarium de Barcelona 2013
Big data Curs del Cibernarium de Barcelona 2013
 
Una visió "dels" del món Open Source: el cas de Castellbisbal [Fórum TIG/SIG ...
Una visió "dels" del món Open Source: el cas de Castellbisbal [Fórum TIG/SIG ...Una visió "dels" del món Open Source: el cas de Castellbisbal [Fórum TIG/SIG ...
Una visió "dels" del món Open Source: el cas de Castellbisbal [Fórum TIG/SIG ...
 
Linked Data
Linked DataLinked Data
Linked Data
 
Tools for Data Driven decisions
Tools for Data Driven decisionsTools for Data Driven decisions
Tools for Data Driven decisions
 
Tools for data driven decisions
Tools for data driven decisionsTools for data driven decisions
Tools for data driven decisions
 
Formacio centres 10_11
Formacio centres 10_11Formacio centres 10_11
Formacio centres 10_11
 
Curs 1.5 Publicació de Dades
Curs 1.5 Publicació de DadesCurs 1.5 Publicació de Dades
Curs 1.5 Publicació de Dades
 
Comparativa ERPs de programari lliure
Comparativa ERPs de programari lliureComparativa ERPs de programari lliure
Comparativa ERPs de programari lliure
 
24a sessió web: Open Data. José Manuel Alonso
24a sessió web: Open Data. José Manuel Alonso24a sessió web: Open Data. José Manuel Alonso
24a sessió web: Open Data. José Manuel Alonso
 
DBBDD_practica1
DBBDD_practica1DBBDD_practica1
DBBDD_practica1
 
Disseny estructurat d'aplicacions
Disseny estructurat d'aplicacionsDisseny estructurat d'aplicacions
Disseny estructurat d'aplicacions
 
Sessió 4 Tècnics - Programa formatiu Dades Obertes per Entitats sense Ànim de...
Sessió 4 Tècnics - Programa formatiu Dades Obertes per Entitats sense Ànim de...Sessió 4 Tècnics - Programa formatiu Dades Obertes per Entitats sense Ànim de...
Sessió 4 Tècnics - Programa formatiu Dades Obertes per Entitats sense Ànim de...
 
Disseny de l’entorn de desenvolupament J2EE del Servei de Recursos Informàtic...
Disseny de l’entorn de desenvolupament J2EE del Servei de Recursos Informàtic...Disseny de l’entorn de desenvolupament J2EE del Servei de Recursos Informàtic...
Disseny de l’entorn de desenvolupament J2EE del Servei de Recursos Informàtic...
 
Migració al programari lliure: reptes i oportunitats
Migració al programari lliure: reptes i oportunitatsMigració al programari lliure: reptes i oportunitats
Migració al programari lliure: reptes i oportunitats
 
Morales Barbero Xavier Eines PAC 2
Morales Barbero Xavier Eines PAC 2Morales Barbero Xavier Eines PAC 2
Morales Barbero Xavier Eines PAC 2
 
Object Reuse and Exchange (OAI- ORE)
Object Reuse and Exchange (OAI- ORE)Object Reuse and Exchange (OAI- ORE)
Object Reuse and Exchange (OAI- ORE)
 

Sparkling Water

  • 1. Sparkling Water Pol Sanz Oriol Mauri SIO – URV 2017
  • 2. Índex  Introducció a Sparkling Water  Conceptes Clau  Data Munging  Scoring  Característiques, Spark i H2O  Cicle de Vida  Arquitectura i Tractament de Dades  Casos d'ús  Exemples d´ús  Començar amb Sparkling Water  Conclusions
  • 3.
  • 4. Introducció  Spark  Plataforma open-source optimitzada per gran manegaments de dades (big data)  H2O  Producte open-source basat en l'escalabilitat del machine learning i "data science".  Sparkling Water és el resultat de combinar el millor de les dues tecnologies  Algoritmes escalables de machine learning amb l'ecosistema i les capacitats d'Spark API  Suporta Scala, R y Python a través de H20 Flow UI
  • 5. Data Munging  Donar forma a un conjunt de dades desordenat, també conegut data wrangling.  Al realitzar un anàlisi de dades (aplicar un model analític), es seleccionen unes característiques que han de tenir les dades abans d'aplicar el model  Totes les operacions que es fan a un conjunt de dades sense procesar per netejarlo, es coneix com Data munging.  A vegades, el Data munging crea dades derivades, com identificadors únics o d'altre informació necessaria.
  • 6. Scoring  Técnica per avaluar la probabilitat de que un individu compleixi un objetiu previst  S'obté de diverses quantitats i qualitats de dades disponibles de l'individu  Dades socio-demogràfiques, comportaments de compra, respostes anteriors  Regressió logística, classificacions (falsos positius)  Exemples  Determinar la viabilitat d'un client que vol demanar un crèdit (edad, feina, ingresos, préstecs...)  Millor àrea d'implantació d'una fàbrica en funció de les característiques d'una població (habitants, cicle de vida, mitjana edad...)
  • 7. Característiques Spark  Eficiencia en memòria  Rapidesa computacional  Algoritmes de Machine learning  Parser, GUI, interficie-R H20  API fàcil d'usar (intuïtiva)  Gran comunitat activa  Components per la plataforma – SQL  Multitenacy
  • 8. Comparació de Sparkling Water amb Spark + H20  Quin hauria de fer servir?  Depèn de les necessitats del usuari  Perquè utilitzar Sparkling Water, i no desenvolupar un model POJO i Spark mateix?  L'ús esperat de SW es per tenir H20 disponible a dins d'un context Spark.  Útil per training: es poden aprofitar diferents data conectors, capacitats de munging...  Un model POJO/MOJO + Spark es suficient per fer scoring  És necessari quan vols utilitzar algoritmes de H20 en harmonía amb l'ecosistema Spark.
  • 9. El que ens proporciona Sparkling Water  Integració de manera transparent de la plataforma de machine learning d' H2O amb l'ecosistema de Spark  Ús de les estructures de dades d'H2O (H2O Frame) i algoritmes amb l'API de Spark
  • 10. Arquitectura de dades: RDD  Perquè aquesta arquitectura de dades?  Problema al guardar informació en sistemes distribuits (reutilització, compartiment)  Processos lents ja que involucren moltes operacions E/S com repliques i serialitzacions  Solució: Tolerancia a fallades distribuida en memòria dels càlculs  Resilient Distributed Datasets  Inmutable  Particionat  Tolerant a fallades  Avaluació dèbil (no estricte ni repetida)  Persistent
  • 11. Cicle de vida de Sparkling Water 1. $ spark-submit 2. Spark Worker JVM 3. Spark Executor JVM 4. H2O 5. Main App (Scala)
  • 12. Tractament de les Dades 2. De Spark RDD a H2O RDD Dues Copies: a Spark RDD i a H2O Frame (columnes de dades comprimides sobre les que operen els algoritmens de H2O) 3. Retorna les prediccions resultants 1. Spark SQL llegeix de Dades origen (de HDFS a Spark RDD) Dades a Spark Executor JVM
  • 13. Casos d'ús – Model building 1. Data source 2. Data munging 3. Modelling 4. Prediction processing
  • 14. Casos d'us – Data parsing munging 1.Data source 2.Data load / munging / exploration(Spark + H20) 3. Modelling (H20)
  • 15. Casos d'us Stream processing, Off-line Data training 1. Processar dades 2. Exportar el model 3.(binari o codi) 4. Processar el model 5. Fer prediccions
  • 16. Exemples • Crear un Model: amb dades meteorològiques i dates de vols per predïr el retràs d'aquests de Barcelona a Londres • A partir de twitts, a quina hora twitteja la persona i quins continguts escriu, saber si aquesta persona està a l'atur o no i quina ideologia política té • Mirar si hi ha relació entre el mapa de les persones que escriu missatges rasistes a les xarxes socials amb el mapa de les colonies del Ku Klux Klan
  • 17. Requeriments d'ús  Linux/OS X/Windows  Java 7+  Spark 1.6+  Sparkling Water es desenvolupa en diferents branques paral·leles segons per cada versió Spark  Configurar la variable shell SPARK_HOME per a que apunti al directori d'instalació d'Spark  export SPARK_HOME="/path/to/spark/installation" .  export MASTER="local-cluster[3,2,1024]"  import org.apache.spark.h2o._ val h2oContext = new H2OContext(sc).start() import h2oContext._
  • 18. Instal·lar i Executar  Desenpaquetar el zip  Configura el SPARK_HOME per la instal·lació del Spark  Executar la shell: $ /bin/sparkling-shell
  • 19.
  • 20. Conclusió  Sparkling Water és l’eina perfecte per aquelles persones que vulguin iniciarse en l’àmbit de ‘machine learning’ i ja coneguin l’ecosistema que ofereix Spark per tractar amb ‘big data’, tot integrat dins d’un sol entorn.  La comunitat de la plataforma és molt activa, i al ser open-source, el progrés de Sparkling Water és constant.
  • 21. Gràcies per la vostra atenció Pol Sanz Oriol Mauri SIO – URV 2017

Editor's Notes

  1. Over the past few years, we watched Matei and the team behind Spark build a thriving open-source movement and a great development platform optimized for in-memory big data, Spark. At the same time, H2O built a great open source product with a growing customer base focused on scalable machine learning and interactive data science. These past couple of months the Spark and H2O teams started brainstorming on how to best combine H2O’s Machine Learning capabilities with the power of the Spark platform. The result: Sparkling Water. Sparkling Water allows users to combine the fast, scalable machine learning algorithms of H2O with the capabilities of Spark. With Sparkling Water,  users can drive computation from Scala/R/Python and utilize the H2O Flow UI, providing an ideal machine learning platform for application developers.
  2. Data Munging es básicamente el término hip para limpiar un conjunto de datos desordenado. Por lo general se utiliza en conjunción con otro término hip 'ciencia de los datos' que es básicamente análisis de datos.   Si alguna vez ha realizado un análisis de datos, puede haber encontrado la selección de características antes de aplicar su modelo (modelo analítico, me refiero) a los datos.   Por lo tanto, en general, toda la actividad que usted hace en los datos sin procesar para hacerlo "limpia" lo suficiente como para introducir su algoritmo analítico es la munging de datos.   A veces, munging de datos crea algunos datos derivados también. Una de las cosas más comunes que los datos munging hace es que crea identificadores únicos. Pero la derivación de datos no es el objetivo primario de la munging de datos.
  3. La puntuación es una técnica para dar prioridad a los datos para evaluar una calificación o para determinar la probabilidad de que un individuo cumpla con una solicitud o pertenezca a un objetivo previsto.   La puntuación suele obtenerse de los datos cuantitativos y cualitativos disponibles en el individuo (datos socio-demostrativos, comportamiento de compra, respuestas anteriores ...) a los que podemos aplicar un modelo de puntuación.   En general, utilizamos la regresión logística como la técnica de modelado. Es una técnica de aprendizaje supervisado que, por ejemplo, ayuda a determinar si un elemento pertenece a una categoría basada en descriptores recopilados en una muestra de población con el fin de generalizar el aprendizaje.   Algunos ejemplos de aplicaciones:   Determinar la viabilidad de un cliente que busca crédito basado en características tales como edad, tipo de empleo, nivel de ingresos, otros préstamos pendientes, etc. Para una empresa, determinar el mejor tipo de área de plantación en función de las características del vecindario (CPS, número de habitantes, ciclo de vida, etc.).
  4. Multitenacy: The term "software multitenancy" refers to a software architecturein which a single instance of software runs on a server and serves multiple tenants. 
  5. Which one should I use? Direct spark with pojo or sparkling water with Binary. There is no 'right' answer, it depends on your use case. It sounds like what you want is the POJO/MOJO in Spark, so you can do scoring without the added dependency of having an H2O cluster up. What is the exact use of sparkling water, when we can easily deploy a model using pojo and spark itself? The exact use of Sparkling Water is to have an H2O available within a Spark context. This is particularly useful for training: you can leverage Spark's many data connectors, munging capabilities etc. POJO/MOJO + Spark is sufficient for scoring Is sparkling water needed only when you have to train model on huge amounts of data? Or it can be used in PROD deployments of model's as well. Sparkling Water is needed when you want to leverage H2O's algorithms in a context that plays nicely w/ the Spark ecosystem. If putting a model in "production" means having "always on" scoring exposed as a REST endpoint or similar: the POJO/MOJO is the way you want to go (H2O clusters are not highly available). You'll need to make sure you're handling incoming data correctly yourself though. If you are doing batch scoring, nightly or otherwise, then it may make sense to use the binary model w/ Sparkling Water because parsing incoming data becomes trivial (asH2OFrame(..)) and scoring is easy as predict()
  6. Hi ha un problema a baix nivell amb la reutilització de dades o compartició existent en els sistemes distribuits (com MapReduce) i es quan Necessites guardar informacio en un sistema intermig d'emmagatzematge distribuit com HDFS o AmazonS3 This makes the overall computations of jobs slower since it involves multiple IO operations, replications and serializations in the process.
  7. Ref: https://blog.h2o.ai/2014/09/how-sparkling-water-brings-h2o-to-spark/ 1- executem la seguent comanda per enviar l'aplicacióde sparkling water (el fitcher.jar)cap al node master de spark 2- Distribuïr l'aplicació per cada un dels nodes esclaus o treballadors(aquest pas és automàtic) (no executen res NO CPU, NO MEM) 3- Dins del Cluster de Sparkling Water entra en joc l'Spark que Executara tota la feina 4- Cada Spark Executor engega una instància d H2O i compartiran la feina entre els dos 5- Després de tots del processos,l'aplicació principal en Scala s'executa tenint accés als dos entorns
  8. Resilient distributed dataset, the central data structure of Apache Spark
  9. https://www.youtube.com/watch?v=iKtcwBktXoc&t=298s https://www.slideshare.net/SparkSummit/an-introduction-to-sparkling-water-by-michal-malohlava
  10. https://www.youtube.com/watch?v=iKtcwBktXoc&t=298s https://www.slideshare.net/SparkSummit/an-introduction-to-sparkling-water-by-michal-malohlava
  11. https://www.youtube.com/watch?v=iKtcwBktXoc&t=298s https://www.slideshare.net/SparkSummit/an-introduction-to-sparkling-water-by-michal-malohlava
  12. https://www.h2o.ai/download/sparkling-water/ # To launch a local Spark cluster with 3 worker nodes (nodes de treball) with 2 cores and 1g per node Create an H2O cloud inside the Spark cluster: