Vidéo: hadoop yarn architecture 2024
Le traitement MapReduce dans Hadoop 1 est géré par les démons JobTracker et TaskTracker. JobTracker conserve une vue de toutes les ressources de traitement disponibles dans le cluster Hadoop et, à mesure que les demandes d'application arrivent, il les planifie et les déploie sur les nœuds TaskTracker pour exécution.
Pendant que les applications sont en cours d'exécution, JobTracker reçoit des mises à jour d'état des noeuds TaskTracker pour suivre leur progression et, si nécessaire, coordonner la gestion des échecs. JobTracker doit s'exécuter sur un nœud maître dans le cluster Hadoop car il coordonne l'exécution de toutes les applications MapReduce du cluster. Il s'agit donc d'un service essentiel.
Une instance du démon TaskTracker s'exécute sur chaque nœud esclave du cluster Hadoop, ce qui signifie que chaque nœud esclave dispose d'un service qui le lie au traitement (TaskTracker) et au stockage (DataNode), ce qui permet à Hadoop d'être un système distribué.
En tant que processus esclave, le TaskTracker reçoit les demandes de traitement du JobTracker. Sa principale responsabilité est de suivre l'exécution des charges de travail MapReduce se déroulant localement sur son nœud esclave et d'envoyer des mises à jour de statut au JobTracker.
Les TaskTrackers gèrent les ressources de traitement sur chaque nœud esclave sous la forme de slots de traitement - les slots définis pour les tâches de map et pour réduire les tâches, pour être exact. Le nombre total d'emplacements de carte et de réduction indique combien de tâches de mappage et de réduction peuvent être exécutées en même temps sur le noeud esclave.
En ce qui concerne l'optimisation d'un cluster Hadoop, il est essentiel de définir le nombre optimal de cartes et de réduire les emplacements. Le nombre d'emplacements doit être soigneusement configuré en fonction des ressources de mémoire, de disque et de processeur disponibles sur chaque nœud esclave. La mémoire est la plus critique de ces trois ressources du point de vue de la performance. En tant que tel, le nombre total d'emplacements de tâches doit être équilibré avec la quantité maximale de mémoire allouée à la taille du tas Java.
Gardez à l'esprit que chaque tâche map et reduce génère sa propre machine virtuelle Java (JVM) et que le tas représente la quantité de mémoire allouée à chaque machine JVM. Le ratio des créneaux de carte pour réduire les créneaux est également un facteur important.
Par exemple, si vous avez trop d'emplacements de carte et pas assez d'emplacements de réduction pour vos charges de travail, les emplacements de carte auront tendance à rester inactifs pendant que vos travaux attendent de réduire les emplacements disponibles.
Des ensembles distincts d'emplacements sont définis pour les tâches cartographiques et réduisent les tâches, car ils utilisent les ressources informatiques de manière très différente.Les tâches de carte sont attribuées en fonction de la localité de données et dépendent fortement des E / S de disque et du processeur. Les tâches de réduction sont attribuées en fonction de la disponibilité, et non de la localité, et elles dépendent fortement de la bande passante du réseau car elles doivent recevoir des résultats de tâches de carte.