Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamiel
Spark une alternative à Hadoop MapReduce pour le Datamining
1. Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation
Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
HUG France SL2013 – Mai 2013
Introduction à Spark
Alternative à Hadoop MapReduce
pour le Data Mining
Tugdual Sarazin
Altic - http://altic.org
Tugdual.sarazin@altic.org
@TugdualSarazin
2. Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale -
Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Data Mining avec Hadoop
Apprentissage (très) long à cause des nombreux accès à l'HDFS
Iter. 1
Lecture
HDFS
Écriture
HDFS
Iter. 2
Lecture
HDFS
Écriture
HDFS
. . .
3. Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale -
Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Data Mining avec Hadoop
Une seule lecture des données puis traitement en mémoire
Iter. 1
Lecture
HDFS
Écriture
RAM
Iter. 2
Lecture
RAM
Écriture
RAM
. . .
4. Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale -
Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Les concepts de Spark
Objectif : travailler sur des collections distribuées
comme vous le feriez en local
● Resilient Distributed Datasets (RDDs)
● Collection d'objets immuables et partitionnés
● Stockage en colonne
● Persistance contrôlable (mise en cache en RAM)
● MapReduce like
● Transformations (ex: map, filter, groupBy, join)
● Actions (ex: count, collect, save)
5. Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale -
Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Développé en Scala
● Bytecode Java (exécutable sur la JVM)
● Mode interactif : console Scala
● Syntaxe concise
file = spark.textFile("hdfs://...")
file.flatMap(line => line.split(" "))
.map(word => (word, 1))
.reduceByKey(_ + _)
6. Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale -
Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Et si il n'y a pas assez de mémoire?
Stockage sur le système de fichiers locale si il n'y a pas
assez de RAM disponible.
7. Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale -
Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Fault Tolerance
● Reprise
8. Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale -
Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Les Tables HBase comme structure de
données
Moteur SQL
Graph
processing
Traitement
flux
9. Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale -
Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Shark : Hive pour Spark
● HiveQL ~= SQL
● Compatible avec Hive data (HDFS, HBase) et metastore
● 100x plus rapide que Hive
10. Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale -
Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Shark + Spark = PL/SQL 2.0
● Le meilleur de chaque langage :
● SQL pour la sélection
● Scala pour le traitement
val youngUsers = sql2rdd("SELECT * FROM users WHERE age < 20")
println(youngUsers.count)
val featureMatrix = youngUsers.mapRows(extractFeatures(_))
kmeans(featureMatrix)
11. Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale -
Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
MLBase (dev)
● Système de machine learning basé sur Spark
● Sélection automatique du meilleur algorithme
● Optimisation des paramètres
● Utilisation interactive
12. Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation
Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
HUG France SL2013 – Mai 2013
Introduction à Spark
Merci !
Tugdual Sarazin
Altic - http://altic.org
Tugdual.sarazin@altic.org
@TugdualSarazin