% INF8200 — Syst. et infrastructures pour les données massives % UQAM — Département d'informatique % Plan de cours — Hiver 2022 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coti, Camille DS-4420 Groupes: 020 Description du cours ==================== Objectifs --------- Ce cours prépare les étudiants aux systèmes et infrastructures pour les données massives et les familiarise avec les activités fondamentales liées aux données massives. Ses objectifs sont principalement : - Comprendre les fondements des systèmes répartis et parallèles, systèmes indispensables à la mise en œuvre de solutions pour le stockage et le traitement des données massives. - Comprendre les principes, méthodes et mécanismes des plateformes de stockage et de traitement de données massives (par ex., MapReduce, Hadoop, Spark) et les outils associés. - Identifier et expérimenter certaines des solutions technologiques disponibles. - Se familiariser avec certains systèmes à la fine pointe de la recherche dans le domaine. Sommaire du contenu ------------------- - Fondements des systèmes répartis et parallèles: modèles, architectures, communications, nommage, coordination, cohérence, fiabilité, réplication; - Infrastructures de stockage des données massives: systèmes et services de stockage de données, systèmes de fichiers répartis, infonuagique, gestion de transactions, entrepôts de données, intégration, fragmentation et duplication de données; - Infrastructures de traitement des données massives: collecte et pré-traitement des données, nettoyage et intégration, analyse et visualisation, modèles de traitement, évaluation des performances, plateformes et outils de traitement distribué, systèmes de traitement de flux de données. Modalité d'enseignement ----------------------- Séances magistrales; Exercices pratiques; Études de cas; Projets; Questionnaires à choix multiples. Modalités d'évaluation ====================== Outil d'évaluation Pondération Échéance ------------------------ ------------- -------------- Projet 1 20% S7 Projet 2 20% S12 Projet 3 20% S15 Quiz 1 7% S5 Quiz 2 7% S9 Quiz 3 7% S11 Quiz 4 7% S14 Présentation d'article 12% à déterminer INFORMATIONS IMPORTANTES ------------------------ La qualité du français constitue un critère d'évaluation (pour un maximum de 10%). En cas de retard dans la remise des travaux, une pénalité de 5% par jour ouvrable sera appliquée. Un retard de plus de cinq jours ouvrables ne sera pas accepté. Les règlements concernant le plagiat seront strictement appliqués. Pour plus de renseignements, consultez le site suivant : Calendrier détaillé du cours ============================ Semaine 1 --------- - Introductions aux systèmes de stockage de données massives - Lien avec les bases de données NoSQL - Infrastructures matérielles - Introduction à Redis - Modèle publish-subscribe Semaine 2 --------- - Introduction au stockage distribué - Mise en œuvre dans Hadoop HDFS - Architecture de stockage de HDFS - Approches pour la tolérance aux pannes Semaine 3 --------- - Présentation des fonctions map et reduce - Introduction du modèle MapReduce Semaine 4 --------- - Approfondissement du modèle MapReduce - MapReduce multiétapes - Interfaçage avec les systèmes de stockage vus précédemment - Ordonnancement de travaux - YARN Semaine 5 --------- - Quizz - Algorithme des k-moyennes - Mise en place avec MapReduce Semaine 6 --------- - Notion de graphe orienté acyclique - Introduction des bases de données distribuées résilientes (RDD) - Introduction du modèle de Spark - Architecture de Spark Semaine 7 --------- - Présentation de projets Semaine 8 --------- - Approfondissement de Spark - Introduction de SparkSQL - Composition d'une requête SparkSQL Semaine 9 --------- - Quizz - Introduction de Cassandra - Modèle de stockage des données dans Cassandra - Présentation du langage de requête de Cassandra CQL - Introduction d'ElasticSearch - Modèle de requêtes dans ElasticSearch Semaine 10 ---------- - Présentation de Hbase - Opérations CRUD sur Hbase - Utilisation avec MapReduce - Présentation de Hive - Présentation de la syntaxe de requêtes HQL Semaine 11 ---------- - Quizz - Présentation de Pig Latin - Modèle de données manipulées par Pig - Forme des requêtes Pig Semaine 12 ---------- - Présentation de projets Semaine 13 ---------- - Présentation d'Apache Kafka - Représentation des données dans Kafka - Modèle publish-subscribe dans Kafka, modèle producteur-consommateurs - Lire des données dans Kafka avec un consommateur Semaine 14 ---------- - Quizz - Présentations d'articles Semaine 15 ---------- - Présentations de projets Médiagraphie ============ Obligatoire ----------- - Diapositives de cours disponibles sur le dépôt Git du cours - Tutoriels disponibles sur le dépôt Git du cours Ressources complémentaires -------------------------- - Hadoop: The Definitive Guide, 4th Edition ‐ Tom White, O'Reilly Media, Inc. 2015. - Big Data Analytics Beyond Hadoop: Real‐Time Applications with Storm, Spark, and More Hadoop Alternatives - Vijay Srinivas Agneeswaran, Ph.D, Pearson FT Press. 2014. - Hadoop with Python - Zachary Radtka & Donald Miner, O'Reilly, 2015 - A gentle introduction to Apache Spark - Databricks, ebook - Learning Spark: Lightning-Fast Data Analytics, 2nd edition - Jules S. Damji, Brooke Wenig, Tathagata Das, and Denny Lee, O'Reilly, 2020. - Cassandra: The Definitive Guide, 2nd edition - Jeff Carpenter & Eben Hewitt, O'Reilly, 2016. - Elasticsearch: The Definitive Guide - Clinton Gormley and Zachary Tong, O'Reilly, 2015. - Programmign Hive - Edward Capriolo, Dean Wampler, and Jason Rutherglen, O'Reilly, 2017. - Hbase: The Definitive Guide - Lars George, O'Reilly, 2011. - Kafka: The Definitive Guide: Real-Time Data and Stream Processing at Scale - Neha Narkhede, Gwen Shapira, and Todd Palino, O'Reilly, 2017.