pdf

Transcription

pdf
 Projet ​
ClusterM2 Objectif: ​
Conception d'un cluster pour le calcul parallèle avec le framework Apache Spark Thème principal:​
Installation cluster Big data Mots clés:​
Spark, Cluster management (Yarn ou Mesos) Motivation: Le framework Spark est une évolution de l'approche MapReduce. Il offre une API plus riche, facilitant l'implémentation d'applications, et de meilleures performances en utilisant de manière plus intensive la mémoire principale. Il regroupe également un ensemble de composants (pour le machine learning, les opérations sur les graphes, le streaming, l'utilisation de SQL, etc.) d'une manière homogène. L'objectif de ce projet est de mettre en place un cluster Spark pour le campus de l'Université de Marne la Vallée. Travail demander: Vous devez installer les briques logiciels supportant la conception d'applications Big Data. L'architecture devra contenir une instance d'HDFS (Hadoop Distributed File System), une solution de cluster management (Yarn ou Mesos mais des premiers tests avec Spark Standalone pourront être conduits) et le framework Spark. Des tests de performance et de robustesse seront conduits pour juger de l’efficicaté de l’installation. Lecture: Site d’Apache Yarn https://hadoop.apache.org/docs/current/hadoop­yarn/hadoop­yarn­site/YARN.html Apache Mesos http://mesos.apache.org/http://mesos.apache.org/http://mesos.apache.org/ Site d’Apache Spark http://spark.apache.org/ Projet ​
SPARQL2Spark Objectif:​
Exécuter des requêtes SPARQL sur une implémentation d’un RDF store sur Apache Spark. Thème principal:​
Base de données et Spark Mots clés:​
SPARQL, RDF, Spark, Parsing et exécution de requêtes Description: Ce projet a pour objectif de concevoir la brique logicielle d'un projet de recherche impliquant le LIGM et le LIP6 (UPMC). L'objectif du projet est de concevoir un système de gestion de base de connaissances RDF sur Apache Spark. La brique de ce projet prend en charge la transformation de requêtes exprimées en SPARQL (le langage de requête de RDF) pour une exécution sur Spark. A partir d’une réprésentation classique, i.e., sous forme (sujet, prédicat, objet ) de triplets RDF, nous pouvons envisager plusieurs manières d’exécuter des requêtes SPARQL: traduction de SPARQL en SQL puis exécution dans SparkSQL, traduction dans le DSL de DataFrame, traduction dans l’API Spark Core qui comporte les opérations d’un algèbre relationnel. Dans ce projet, nous proposons une optimisation de cette dernière qui tant à limiter le nombre de jointures et le nombre de passes sur le jeu de données. Travail demander: ​
Vous devez écrire un programme Scala supportant, pour un sous­ensemble de SPARQL, le parsing, la transformation et la génération de code Spark. Le parsing des requêtes SPARQL sera géré par le framework Apache Jena ou bien l'API OpenRDF Sesame (un étude des fonctionnalités et des performances de ces 2 frameworks motivera l'adoption d'un des 2 systèmes). A la suite de cette étape, vous obtiendrez une représentation sous la forme d’un algèbre relationnel. La seconde étape consiste à transformer cette représentation sous la forme d’appels à l’API Spark. Il conviendra donc d’étudier cette dernière, en particulier le sous ensemble comportant des opérateurs de l'algèbre relationnel (join, union, intersection, filter, etc.). Cette transformation suivra un ensemble de règles. qui seront fournies aux étudiants.La dernière étape correspond à l’exécution du code Spark sur un cluster ou bien sur une machine locale. Lecture: Spark SQL: Relational Data Processing in Spark. ​
SIGMOD Conference 2015​
: 1383­1394 (​
http://dblp.uni­trier.de/pers/hd/z/Zaharia:Matei​
) SPARQL 1.1 Query Language : http://www.w3.org/TR/sparql11­query/ Article en cours de rédaction par l’equipe l’UPMC, UPEM (à fournir pour les etudiants qui prendront ce projet). Projet ​
ML4Part Objectif: ​
Méthode machine Learning sur Spark pour le partitionnement de graphes RDF Thème principal: ​
Machine learning et Spark Mots clés: ​
Partitionnement de graphes RDF, Machine learning, MLlib, évaluation Motivation: ​
Il y a un réel intérêt à distribuer de grands graphes RDF. Le fait de choisir un partitionnement optimal d’un graphe est un problème NP­complet. Il convient donc de proposer des heuristiques pour s’attaquer à ce problème. Dernièrement, de nombreuses solutions ont émergées pour les graphes RDF, e.g., en utilisant un outil externe de partitionnement de graphes, en se basant sur les requêtes les plus fréquentes, solution hybride. A notre connaissance, une seule solution a été proposée à partir de méthodes provenant du Machine Learning. L'article Semstore propose un partitionnement de graphes RDF en exploitant la méthode de clusterisation des K­means. Travail demander: ​
Dans un premier temps, vous implémentez l’algorithme de Semstore sur le moteur Apache Spark. Vous pouvez exploiter et/ou étendre le composant MLlib de Spark. Dans un second temps, vous proposez un algorithme de partitionnement de graphes RDF qui se base sur une autre méthode Machine Learning. Vous conduisez une évaluation sur les performances de vos deux implémentations (qui seront comparées à d’autres implémentations Spark). Ces évaluations porteront sur les mesures suivantes: temps de calcul du partitionnement, taux de réplication, performance sur un jeu de requêtes prédéfinies. Lecture: SemStore: A Semantic­Preserving Distributed RDF Triple Store. CIKM 2014. (http://www.cc.gatech.edu/~lingliu/papers/2014/CIKM2014­Wu.pdf) On the Evaluation of RDF Distribution Algorithms Implemented over Apache Spark. SSWS@ISWC 2015​
: 16­31 (http://dblp.uni­trier.de/pers/hd/c/Cur=eacute=:Olivier.html) Projet ​
GraphX4Part Objectifs: ​
Partitionnement de graphes RDF à l'aide de GraphXPartitionnement de graphes RDF à l'aide de GraphXPartitionnement de graphes RDF à l'aide de GraphXPartitionnement de graphes RDF à l'aide de GraphXPartitionnement de graphes RDF à l'aide de GraphX Thème principal: ​
Traitement de graphes et Spark Mots clés: ​
Partitionnement de graphes RDF, Graph processing, GraphX, Evaluation Motivation: ​
Il y a un réel intérêt à distribuer de grands graphes RDF. Le fait de choisir un partitionnement optimal d’un graphe est un problème NP­complet.Il convient donc de proposer des heuristiques pour s’attaquer à ce problème. Dernièrement de nombreuses solutions ont émergées pour les graphes RDF, e.g., en utilisant un outil externe de partitionnement de graphes, en se basant sur les requêtes les plus fréquentes, solution hybride. Un outil fréquemment utilisé pour le partitionnement de graphes RDF est Metis (​
http://glaros.dtc.umn.edu/gkhome/metis/metis/overview​
). Il présente certaines limites: taille des graphes de moins de 500 millions de triplets, non distribution du calcul. Bien qu’une solution distribuée de Metis soit disponible (parMetis), il nous semble particulièrement pertinent de considérer une approche intégrée dans un framework du type Spark. Travail à faire: Vous devez développer une solution de partitionnement de graphes RDF à partir du composant GraphX de Spark. Ce composant comporte plusieurs fonctions permettant un partitionnement distribué (e.g., 2D hash partitioning). Vous devez implémenter une ou plusieurs solutions et comparer vos performances par rapport à un existant développé également sur Spark. Lecture: GraphX: Graph Processing in a Distributed Dataflow Framework. OSDI 14 (https://www.usenix.org/system/files/conference/osdi14/osdi14­paper­gonzalez.pdf) On the Evaluation of RDF Distribution Algorithms Implemented over Apache Spark. SSWS@ISWC 2015​
: 16­31 (http://dblp.uni­trier.de/pers/hd/c/Cur=eacute=:Olivier.html) Projet ​
SPARQLPatterns Objectif: ​
Raisonner sur des requêtes SPARQL dans l’objectif de découvrir des motifs récurrents. Thème principal: ​
Web Sémantic et raisonnement Mots clés:​
SPARQL, RDF, Ontologies (RDFS, OWL), Raisonnement Motivation: Parmi les solutions disponibles de partitionnement de graphes RDF, nous retrouvons quelques systèmes se basant sur un jeu de requêtes SPARQL. L’objectif est alors d’allouer des portions du graphe à des machines de manière à limiter les communications entre celles­ci lors de l’exécution de requêtes. En allouant ces portions à partir de requêtes fréquentes, il est possible de garantir un minimum d’échanges sur le réseau lors de l’exécutionsur de ces requêtes ou de requêtes ayant un motif proche. Il devient alors nécessaire de généraliser des motifs de requêtes. Par exemple, deux requêtes sélectionnant respectivement les oeuvres de Picasso et de Monet peuvent être généralisées à une requête retournant les oeuvres de peintres. Un tel type de généralisation repose sur une exploitation d’ontologies. Travail demander: ​
Vous devez développer des algorithmes de généralisation de motifs à partir de jeux de requêtes SPARQL. Ces algorithmes pourront exploiter les ontologies sous jacentes aux jeux de données RDF. L’accès à un raisonneur (RDFS ou OWL suivant l’expressivité de l’ontologie) peut être nécessaire. Des jeux de données de requêtes seront fournis pour évaluer les méthodes développées (Wikidata, DBPedia, domaine médical). Lecture: WARP: Workload­aware replication and partitioning for RDF.​
​
ICDE Workshops 2013​
: 1­6 (http://dblp.uni­trier.de/pers/hd/h/Hose:Katja) Partout: A Distributed Engine for Efficient RDF Processing.​
​
CoRR abs/1212.5636​
(2012) (​
http://dblp.uni­trier.de/pers/hd/h/Hose:Katja​
) On the Evaluation of RDF Distribution Algorithms Implemented over Apache Spark.​
​
CoRR abs/1507.02321​
(2015) http://dblp.uni­trier.de/pers/hd/c/Cur=eacute=:Olivier.html