Aller au contenu principal
Version: 1.3.1.0

Aperçu d'Apache Hadoop

Apache Hadoop est le cadre open source fondamental pour le stockage distribué et le traitement de données à grande échelle. Il constitue le socle de toute la pile ODP : chaque autre composant s'exécute sur l'infrastructure qu'il fournit.

Qu'est-ce que Hadoop ?

Hadoop est un framework qui permet le traitement distribué de jeux de données volumineux sur des clusters de serveurs standard. Il atteint sa fiabilité grâce à la tolérance aux pannes logicielle : les données sont répliquées sur plusieurs machines, et les tâches échouées sont automatiquement relancées sur des nœuds sains. Trois sous-systèmes principaux définissent Hadoop :

  • HDFS (Hadoop Distributed File System) — la couche de stockage distribué
  • YARN (Yet Another Resource Negotiator) — la couche de gestion des ressources du cluster
  • MapReduce — le moteur de traitement par lots d'origine (largement supplanté par Tez, Spark et Hive aujourd'hui, mais toujours supporté)

Architecture de HDFS

HDFS découpe les fichiers en blocs de taille fixe (typiquement 128 Mo) et distribue des copies répliquées sur les DataNodes. Les métadonnées (l'espace de noms, les correspondances fichier-bloc, les permissions) sont gérées par le NameNode.

NameNode et DataNodes

Le NameNode conserve l'intégralité de l'espace de noms du système de fichiers en mémoire, ce qui rend les recherches de métadonnées très rapides. Les DataNodes stockent les blocs de données et transmettent leur inventaire au NameNode via des battements de cœur (heartbeats). Lorsqu'un client lit ou écrit un fichier, il contacte d'abord le NameNode pour obtenir les emplacements des blocs, puis transfère les données directement vers ou depuis les DataNodes — le NameNode n'est jamais sur le chemin des données.

Haute disponibilité avec ZooKeeper

Un NameNode unique constitue un point de défaillance potentiel. La haute disponibilité HDFS élimine ce risque en faisant fonctionner en parallèle un NameNode actif et un NameNode en veille. Ils partagent un ensemble de JournalNodes qui forment un journal d'édition basé sur le quorum. ZooKeeper et le ZKFC (ZooKeeper Failover Controller) surveillent l'état des nœuds et déclenchent un basculement automatique vers le NameNode en veille en quelques secondes si le NameNode actif tombe en panne.

Fédération HDFS

La fédération HDFS permet à plusieurs NameNodes indépendants, chacun gérant un volume d'espace de noms distinct, de partager un pool commun de DataNodes. Cela permet la mise à l'échelle horizontale de l'espace de noms (au-delà des limites mémoire d'un seul NameNode) et fournit une isolation au niveau de l'espace de noms entre équipes ou charges de travail.

Architecture de YARN

YARN dissocie la gestion des ressources du traitement des données, permettant à de nombreux moteurs d'exécution différents (Hive/Tez, Spark, Flink, MapReduce) de partager un même cluster.

ResourceManager et NodeManagers

Le ResourceManager est l'arbitre global des ressources du cluster. Il suit les CPU et la mémoire disponibles sur tous les nœuds et alloue des conteneurs (tranches de ressources) aux applications. Chaque nœud du cluster exécute un NodeManager qui gère les conteneurs sur ce nœud, surveille leur utilisation des ressources et rend compte au ResourceManager.

Cycle de vie d'une application

Lorsqu'une application est soumise, YARN lance un ApplicationMaster (AM) dans un conteneur. L'AM négocie avec le ResourceManager des conteneurs supplémentaires et orchestre le calcul réel. Cette architecture maintient le ResourceManager léger et permet à la logique de planification spécifique à l'application de résider dans l'AM.

Capacity Scheduler

ODP est livré avec le Capacity Scheduler, qui partitionne les ressources du cluster en une hiérarchie de files d'attente. Chaque file se voit garantir un pourcentage minimum de capacité et peut s'étendre jusqu'à un maximum configurable lorsque les autres files sont inactives. Cela permet à plusieurs équipes de partager le cluster avec des garanties de ressources prévisibles et empêche une seule charge de travail de monopoliser les ressources.

Pourquoi Hadoop reste pertinent

Malgré l'essor des plateformes de données cloud-native, Hadoop demeure l'architecture de référence pour le traitement de données à l'échelle du pétaoctet sur site pour plusieurs raisons :

  • Échelle : HDFS s'adapte à des centaines de pétaoctets sur des milliers de nœuds dans un seul cluster.
  • Matériel standard : Aucun matériel de stockage spécialisé n'est nécessaire. Hadoop est conçu pour fonctionner sur des serveurs x86 standard.
  • Écosystème mature : Plus de 15 ans de robustesse en production, un riche écosystème de plugins et une large adoption en entreprise signifient des solutions éprouvées pour la plupart des défis de l'ingénierie des données.
  • Localité des données : En colocatant le calcul et le stockage, Hadoop minimise les E/S réseau — YARN planifie préférentiellement les tâches sur les nœuds qui détiennent les blocs HDFS pertinents.
  • Standards ouverts : HDFS, YARN et l'écosystème environnant sont entièrement open source (Licence Apache 2.0), évitant la dépendance vis-à-vis d'un fournisseur.

Comment ODP étend Hadoop

ODP (Open Data Platform) emballe Hadoop 3.4.1 avec un ensemble d'améliorations conçues pour les déploiements en production :

  • Gestion par Apache Ambari : ODP utilise une version durcie d'Ambari pour provisionner, configurer, surveiller et mettre à niveau les clusters Hadoop via une interface utilisateur unifiée et une API REST — sans édition manuelle de fichiers de configuration.
  • Dernières versions en amont : ODP livre les versions stables les plus récentes de chaque composant, dont Hadoop 3.4.1, avec des correctifs amont rétroportés pour la compatibilité.
  • Sécurité par défaut : L'authentification Kerberos, l'autorisation Ranger et le chiffrement TLS sont des éléments de première classe dans ODP. L'assistant Kerberos d'Ambari automatise l'intégration complète du KDC pour tous les services, y compris HDFS, YARN et MapReduce.
  • Haute disponibilité par défaut : La haute disponibilité du NameNode, du ResourceManager et des JournalNodes est configurée en standard dans les architectures de référence ODP.
  • Formats de stockage étendus : ODP intègre Apache Iceberg 1.6.1 sur HDFS, permettant les transactions ACID, l'évolution des schémas et le voyage dans le temps sans remplacer la couche de stockage distribué sous-jacente.