Revenir au contenu principal

Cluster Hadoop

Essayer Gratuitement Databricks

Qu'est-ce qu'un cluster Hadoop ?

Apache Hadoop est un framework logiciel et un moteur de traitement des données open source basé sur Java. Il permet de diviser les tâches de traitement analytique Big Data en tâches plus petites qui peuvent être exécutées en parallèle en utilisant un algorithme (comme l'algorithme MapReduce) et en les distribuant sur un cluster Hadoop. Un cluster Hadoop est un ensemble d'ordinateurs appelés nœuds, mis en réseau pour accomplir ce type de calculs parallèles sur de grands datasets. Contrairement aux autres clusters informatiques, les clusters Hadoop sont spécialement conçus pour héberger et analyser des quantités massives de données structurées et non structurées dans un environnement de calcul distribué. Les écosystèmes Hadoop se distinguent également des autres clusters informatiques par leur structure et leur architecture uniques. Les clusters Hadoop se composent d'un réseau de nœuds principaux et subordonnés qui exploitent un matériel générique à haute disponibilité et faible coût. Parce qu'ils peuvent grandir de façon linéaire et qu'il est facile d'ajouter ou de supprimer des nœuds en fonction de la demande, ils sont particulièrement adaptés aux tâches d'analytique Big Data dont les datasets varient considérablement en taille.

Architecture des clusters Hadoop

Les clusters Hadoop se composent d'un réseau de nœuds principaux et de travail qui orchestrent et exécutent les différentes tâches sur le système de fichier distribué Hadoop. Les nœuds principaux sont généralement installés sur du matériel de meilleure qualité. Ils englobent un NameNode, un NameNode secondaire et un JobTracker, chacun étant exécuté sur une machine distincte. Les nœuds de travail sont installés sur des machines virtuelles qui exécutent à la fois les services DataNode et TaskTracker sur un matériel de base. Ce sont eux qui assurent le stockage et le traitement des tâches selon les instructions des nœuds principaux. Le système compte enfin une dernière partie : les nœuds client, qui sont responsables du chargement des données et de la récupération des résultats. Les clusters Hadoop comprennent donc trois types de nœuds : nœuds principaux, nœuds de travail et nœuds client

  • Les nœuds principaux stockent les données dans HDFS et supervisent les opérations clés telles que l'exécution de calculs parallèles sur les données à l'aide de MapReduce.
  • Les nœuds de travail représentent la majeure partie des machines virtuelles d'un cluster Hadoop ; leur rôle consiste à stocker les données et à effectuer des calculs. Chaque nœud de travail exécute les services DataNode et TaskTracker, utilisés pour recevoir des instructions des nœuds principaux.
  • Les nœuds client ont pour mission de charger les données dans le cluster. Les nœuds client commencent par soumettre des tâches MapReduce qui décrivent de quelle manière les données doivent être traitées, puis récupèrent les résultats une fois le traitement terminé.

Qu'est-ce que la taille d'un cluster dans Hadoop ?

La taille d'un cluster Hadoop est un ensemble d'indicateurs qui définissent les capacités de stockage et de calcul permettant d'exécuter des charges utiles Hadoop :

  • Nombre de nœuds : nombre de nœuds principaux, de périphérie et de travail.
  • Configuration de chaque type de nœud : nombre de cœurs par nœud, RAM et volume de disque.

Quels sont les avantages d'un cluster Hadoop ?

  • Les clusters Hadoop peuvent démultiplier la vitesse de traitement de nombreuses tâches d'analytique Big Data, en raison de leur capacité à répartir les grandes tâches de calcul en tâches plus petites, exécutables de façon parallèle et distribuée.
  • Les clusters Hadoop sont très évolutifs : vous pouvez rapidement ajouter des nœuds pour augmenter le début et maintenir la vitesse de traitement malgré l'augmentation des blocs de données.
  • L'utilisation de matériel générique à bas coût, facile à se procurer, vient encore simplifier la mise en place et la maintenance des clusters Hadoop.
  • Dans les clusters Hadoop, un dataset est répliqué sur le système de fichiers distribués, ce qui le rend résilient en cas de perte de données ou de défaillance du cluster.
  • Les clusters Hadoop permettent également d'intégrer et d'exploiter des données provenant de différents systèmes source et dans différents formats.
  • Il est possible de déployer Hadoop en recourant à une installation à un seul nœud à des fins d'évaluation.

Quelles sont les limites des clusters Hadoop ?

  • Problèmes avec les petits fichiers : Hadoop a du mal à gérer les grands volumes de petits fichiers, c'est-à-dire les fichiers d'une taille inférieure à la taille de bloc Hadoop (128 Mo ou 256 Mo par défaut). Il n'a pas été conçu pour prendre en charge les grands volumes de données du Big Data de façon évolutive. En revanche, Hadoop fonctionne bien avec un petit nombre de gros fichiers. À terme, lorsque vous augmentez le nombre de petits fichiers, le NameNode est surchargé car il doit héberger l'espace de nommage du système.
  • Lourde charge de traitement : dans Hadoop, les opérations de lecture et d'écriture peuvent rapidement devenir coûteuses, surtout lorsqu'il faut traiter de grandes quantités de données. C'est dû à l'incapacité d'Hadoop à effectuer du traitement en mémoire : les données sont lues et écrites sur le disque en permanence.
  • Hadoop ne prend en charge que le traitement par batch : il est conçu pour traiter des petits lots de gros fichiers. Cette limite tient à la façon dont les données sont collectées et stockées, ces deux opérations devant être effectuées avant le début du traitement. Autrement dit, les données de streaming ne sont pas prises en charge et il est impossible de réaliser du traitement en temps réel avec une faible latence.
  • Traitement itératif : Hadoop présente une structure de flux de données composée d'étapes séquentielles qui empêchent tout traitement itératif et toute exploitation pour le ML.

Ressources complémentaires

Retour au glossaire