Le framework Apache Hadoop
Architecture
Présentation d'une architecture distribuée dans le cadre d'Hadoop

Schéma d'architecture Hadoop représentant les principaux rôles des machines
Il faut tout d'abord savoir qu'une architecture Hadoop est basée sur les deux principaux rôles maître / esclave. Des sous-rôles relatifs au système de fichiers et à l'exécution de tâhces distribuées sont associés à chaque machine.
Dans le cadre des machines maîtres, trois principaux sous-rôles sont associés :
- JobTracker : Il s'agit de la responsabilité pour une machine maître de lancer des tâches distribuées, en coordonnant les esclaves. Le JobTracker, planifie les exécutions, gère l'état des machines esclaves et aggrège les résultats de calculs dans le cadre de MapReduce.
- NameNode : Le rôle de NameNode intervient dans le fonctionnement du système de fichiers distribué HDFS. Une machine maître associée à ce rôle a pour responsabilité de répartir les données sur les machines esclaves et de gérer l'espace de noms du cluster. Elle contient les meta-datas lu permettant de savoir sur quelle machine chauqe fichier est hébergé.
- SecondaryNameNode : Ce rôle intervient dans le cadre de la redondance du NameNode. Généralement assumé par une autre machine physique que le NameNode, il permet, en cas de panne de celui-ci, la continuité de fonctionnement du cluster Hadoop.
Les machines esclaves ont pour chacune d'elles deux sous-rôles qui leurs sont associées :
- TaskTracker : Il s'agit du rôle permettant à un esclave d'exécuter une tâche MapReduce sur les données qu'elle héberge. Le TaskTracker est piloté par le JobTracker d'une machine maître qui lui envoie la tâche à exécuter.
- DataNode : Comme son nom l'indique, il s'agit d'un noeud de l'architecture hébergeant une partie des données du cluster. Les noeuds de données sont généralement répliqués dans le cadre d'une architecture Hadoop afin d'assurer la haute disponibilité des données.
Lorsqu'un client à besoin d'accéder à une donnée ou d'exécuter une tâche distribuée, elle passe par la machine maître jouant les rôles de JobTracker et de NameNode.
Maintenant que nous avons vu globalement comment s'articule une architecture de ce type, nous allons voir les deux principaux concepts liés aux différents rôles que nous venons de présenter.