1 Traitement distribué pour les Big Data Master Ingénierie des Systèmes d'Infor

1 Traitement distribué pour les Big Data Master Ingénierie des Systèmes d'Information M. Jean-Marie PREIRA jmpreira@gmail.com Juin 2022 2 SOMMAIRE I. Introduction à l'informatique parallèle II. Big Data et analyse de données III.Le paradigme MapReduce IV.L'écosystème Hadoop V. Apache Hive VI.Apache Spark 3 Traitement distribué pour les Big Data I. Introduction à l'informatique parallèle 4 Introduction à l'informatique parallèle ●Technologie des architectures distribuées – Le processeur multi-coeur – Le nœud de calcul – Le cluster de calcul – Les processeurs graphiques – Le multithreading – Outils de parallèlisation ●Problématique du déploiement – Performance – Tolérance aux pannes – Passage à l'échelle ●Apache ZooKeeper – Origines – Objectifs 5 Technologie des architectures distribuées ●Le processeur multi-coeur – Loi de Moore : « Le nombre de transistors sur une puce doublerait tous les 2 ans » – Conséquence : problème de surchauffe 6 Technologie des architectures distribuées ●Le processeur multi-coeur – Solution : Implémenter plusieurs processeurs (cœurs) sur un même circuit intégré. On parle de processeur muli-cœurs. – Un coeur est un petit processeur autonome, qui peut exécuter un code différent de ceux des autres coeurs, à une fréquence d’horloge éventuellement différente. 7 Technologie des architectures distribuées ●Le processeur multi-coeur – Exemples ●Intel Xeon Westmere-Ex : 10 cœurs/processeur ●Sun Sparc T3: 16 cœurs/processeur ●Intel Core i7: 6 cœurs/processeur ●IBM Power 7: 8 cœurs/processeur 8 Technologie des architectures distribuées ●Le nœud de calcul Un noeud de calcul est un ordinateur, avec – son/ses processeurs,sa mémoire RAM, – son/ses accès réseau, un/des disques locaux. 9 Technologie des architectures distribuées ●Le nœud de calcul 10 Technologie des architectures distribuées ●Le cluster de calcul ✔Conceptuellement un cluster de calcul n’est qu’un ensemble de noeuds de calculs, installés dans des baies et reliés par un réseau local d’interconnexion performant haut débit de type Infiniband avec des débits allant de 10 à 200 Gbits/s 11 Technologie des architectures distribuées ●Les processeurs graphiques – Les GPU (Graphics Processing Units) sont très utilisés pour paralléliser des calculs de Machine Learning ou de Deep Learning VS 12 Technologie des architectures distribuées ●Le multithreading – Du point de vue processus, la programmation parallèle peut se faire de deux manières ●Par un ensemble de processus distincts ●Par un ensemble de threads à l'intérieur d'un même processus. 13 Technologie des architectures distribuées ●Le multithreading – Un processus peut créer plusieurs threads, et par défaut tous les threads de ce processus partagent son espace mémoire et ses données. 14 Technologie des architectures distribuées ●Outils de parallèlisation – Le calcul parallèle ou High Performance Computing (HPC) se fait à l'aide de bibliothèques développées dans des langages compilés (car plus rapides) comme, le Fortran, le C ou le C++. – Les bibliothèques les plus standards sont : ●OpenMP (Open Multi-Processing) pour le développement multithreads au sein de PC multi-coeurs ●MPI (Message Passing Interface) pour le calcul distribués sur PC multi-processeurs ou un cluster de PCs ●CUDA (Compute Unified Device Architecture) pour le calcul sur GPU 15 Problématique du déploiement ●Afin d'être correctement exécutée, une application distribuées doit être déployée sur une architecture distribuée et à mène de garantir : – La performance dans l'exécution – La tolérance aux pannes – Le passage à l'échelle 16 Problématique du déploiement ●La performance – Vitesse de calcul – Vitesse d'accès en lecture et/ou écriture aux données. ➢Le principe de la localité des données – Les meilleures performances sont obtenues quand chaque partition des données est traitée localement, minimisant les besoins d’échanges réseaux entre les machines. – Contrairement au modèle client-serveur, les données ne sont pas transférées au programme client, mais le programme est distribué à toutes les machines stockant des données 17 Problématique du déploiement ●La performance ➢Le principe de la localité des données 18 Problématique du déploiement ●La tolérance aux pannes – Dans un système distribué il y a toujours un risque que les ressources ne soient pas disponibles en même temps. – Certaines machines tombent en panne, certaines unités de stockage subissent des dommages et leurs données deviennent corrompues, certaines parties du réseau tombent en panne ou deviennent très chargées et lentes. ➢Principe de la réplication – Les données sont stockées de manière redondante sur des machines différentes, de façon à ce qu’elles soient toujours accessibles, et que l’on puisse toujours leur envoyer des tâches de traitement. 19 Problématique du déploiement ●Le passage à l'échelle – Il est souvent difficile de mettre au point une application et un déploiement extensibles pour traiter des données de très grandes taille. – Par exemple, une application distribuée peut contenir une petite partie qui reste séquentielle et s’exécute dans la mémoire d’une seule machine, et qui devient insupportable par cette dernière quand le problème grossit. – Exploiter automatiquement et sans limite plus de ressources pour traiter des problèmes plus importants, c’est-à-dire passer à l’échelle, est un problème très compliqué. 20 Problématique du déploiement ●Le passage à l'échelle ➢Loi d'Amdahl L'accélération du programme par la parallélisation est limitée par le nombre d'exécutions parallèles possible au sein de l'algorithme. Par exemple, si un programme peut être parallélisé à 90 %, l'accélération maximale théorique sera de x 10, quel que soit le nombre de processeurs utilisés. 21 Apache ZooKeeper ●Origines ➢Le problème de coordination – La scalabilité du cluster permet l'ajout de nœuds de données supplémentaire. Cependant l'application distribuée qui tourne sur le cluster doit être en mesure de signaler cet ajout aux autres nœuds pour d'une part, synchroniser la communication dans le cluster et, d'autre part, affecter des tâches à ces nouveaux nœuds. ➢ZooKeeper – Outil de coordination de service 22 Apache ZooKeeper ●Origines ➢ZooKeeper – ZooKeeper a été développé par Yahoo! avant d’intégrer la fondation Apache. – ZooKeeper prend en charge la compléxité inhérente à la synchronisation des tâches dans un cluster et évite aux applications distibuées d'avoir à gérer le problème elles-mêmes. 23 Apache ZooKeeper ●Objectifs – Maintenir des informations de coordinnation – Offrir un Service Discovery – Fournir des mécanismes distribués de concurrences 24 Références (1) Big Data : Informatique pour les données et calculs massifs, Centrale Supélec. Support de cours Chap 1 & 2 - Stéphane Vialle ● http://www.metz.supelec.fr/metz/personnel/vialle/course/BigData-2A-CS/ (2) Apache Zookeeper: facilitez vous les systèmes distribués – Blog Zenika ● https://blog.zenika.com/2014/10/13/apache-zookeeper-facilitez-vous-les- systemes-distribues2/ uploads/Science et Technologie/ tdbd-part1 1 .pdf

  • 49
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager