spark une alternative à hadoop mapreduce pour le datamining
DESCRIPTION
A l'occoasion de Solutions Linux, une introduction à SparkTRANSCRIPT
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 SarazinAltic - http://[email protected]@TugdualSarazin
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
LectureHDFS
ÉcritureHDFS
Iter. 2
LectureHDFS
ÉcritureHDFS
. . .
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
LectureHDFS
ÉcritureRAM
Iter. 2
LectureRAM
ÉcritureRAM
. . .
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)
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(_ + _)
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.
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
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 SQLGraph
processingTraitement
flux
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
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)
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
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 SarazinAltic - http://[email protected]@TugdualSarazin