% INF8200 — Syst. et infrastructures pour les données massives % UQAM — Département d'informatique % Plan de cours — Hiver 2023 * Horaires, locaux et enseignants: Enseignement ============ Zaier, Zied PK-4115 Groupes: 020, 040 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 30% à déterminer Projet 2 30% à déterminer Quiz 1 10% à déterminer Quiz 2 10% à déterminer Quiz 3 10% à déterminer Quiz 4 10% à 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 : Les applications pratiques s'appuient sur un tutoriel et nécessitent un ordinateur portable avec au moins 8GO de RAM. 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 Semaine 2 --------- - Introduction au stockage distribué - Mise en œuvre dans Hadoop HDFS - Architecture de stockage de HDFS - Approches pour la tolérance aux pannes - Application pratique Semaine 3 et 4 -------------- - Comprendre le système de fichiers HDFS (Hadoop Distributed File System) - Description du paradigme MapReduce - Comprendre les bases du modèle MapReduce - Application pratique Semaine 5 et 6 -------------- - Description des différentes phases du modèle de programmation MapReduce - Compréhension des limites du modèle MapReduce - Maîtrise du flux des données entre les étapes Map et Reduce - Écrire un code MapReduce avec la langage approprié - Application pratique Semaine 7 et 8 -------------- - Identifier les différents outils Hadoop pour traiter des données - Description des différents outils Hadoop dédiés au traitement des données massives - Présentation de PIG - Présentation de HIVE Semaine 9 et 10 --------------- - Comprendre le rôle de PIG - Introduction à la syntaxe du langage Pig Latin - Écriture/Exécution d'un code PIG latin sur les données - Importation et exportation des données vers et à partir de l'espace de stockage - Application pratique Semaine 11 et 12 ---------------- - Compréhension du rôle de HIVE - Introduction à la syntaxe du langage HQL - Manipuler des structures de données complexes en HIVE - Écriture/Exécution de plusieurs requêtes de données en langage HQL sur des données - Importation et exportation des données vers et à partir de l'espace de stockage - Application pratique Semaine 13 et 14 ---------------- - Présentation de Spark - Description des objets RDD - Présentation du langage Spark SQL (SparkSQL) - Composition d'une requête SparkSQL - Écriture de plusieurs requêtes d'interrogation sur des données - Importation et exportation des données vers et à partir de l'espace de stockage - Application pratique Semaine 15 ---------- - Présentation d'Apache Kafka - Utilisation d'Apache Kafka 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.