Comment lancer une application basée sur le fil-

Pour montrer comment les différents fils (Yet Another Négociateur ressources) composants fonctionnent ensemble, vous pouvez marcher à travers l'exécution d'une application. Pour les besoins du raisonnement, il peut être une application de MapReduce, avec l'architecture JobTracker et TaskTracker.

Rappelez-vous que, avec du fil, il peut être tout type d'application pour lequel il ya un cadre d'application. La figure montre les interactions, et le compte de la prose est défini dans la liste des étapes suivantes:

  1. L'application client soumet une demande de candidature à l'Resource Manager.

  2. Le gestionnaire de ressources pose une Node Manager pour créer une instance de maître d'application pour cette application. Le Node Manager obtient un récipient pour elle et commence vers le haut.

  3. Ce nouveau Maître de l'application elle-même initialise par lui-même l'enregistrement avec le Resource Manager.

  4. Le Maître demande chiffres sur le nombre de ressources de traitement sont nécessaires pour exécuter l'application entière.

    Cela se fait en demandant à l'NameNode les noms et emplacements des fichiers et des blocs de données les besoins de l'application et de calcul de combien de tâches de carte et de réduire les tâches sont nécessaires pour traiter toutes ces données.




  5. Le Maître de l'application demande alors les ressources nécessaires du Gestionnaire de ressources.

    Le Maître application envoie des messages de pulsation au Resource Manager long de sa vie, avec une liste permanente des ressources demandées et tous les changements (par exemple, une demande de mise à mort).

  6. Le gestionnaire de ressources accepte la demande de ressources et les files d'attente les demandes de ressources spécifiques aux côtés de toutes les autres demandes de ressources qui sont déjà prévues.

  7. Comme les ressources demandées sont disponibles sur les nœuds esclaves, le gestionnaire de ressources accorde les contrats de location-Maître de l'application pour les conteneurs sur des nœuds esclaves spécifiques.

  8. Le Maître application demande le conteneur affecté du Node Manager et envoie un contexte de lancement de conteneurs (CTC).

    Le CTC comprend tout ce que la tâche d'application a besoin pour fonctionner: les variables d'environnement, les jetons d'authentification, les ressources locales nécessaires à l'exécution (par exemple, les fichiers de données supplémentaires, ou une logique d'application dans des bocaux), et la chaîne nécessaire pour commencer le processus réel de commande. Le Node Manager crée alors le processus de conteneur demandé et démarre.

  9. L'application exécute tandis que les processus de conteneurs sont en cours d'exécution.

    Le Maître application surveille leurs progrès, et en cas de défaillance d'un conteneur ou d'une défaillance d'un nœud, la tâche est redémarré sur le prochain emplacement disponible. Si la même tâche échoue après quatre tentatives (une valeur par défaut qui peut être personnalisé), l'ensemble du travail échouera. Durant cette phase, le Maître de l'application communique directement avec le client pour répondre aux demandes de statut.

  10. En outre, alors que les conteneurs sont en cours d'exécution, le gestionnaire de ressources peut envoyer un ordre kill pour Node Manager de mettre fin à un conteneur spécifique.

    Cela peut être le résultat d'un changement de priorité de planification ou un fonctionnement normal, tel que l'application elle-même déjà en cours d'achèvement.

  11. Dans le cas des applications MapReduce, après les tâches de carte sont finis, les ressources demande l'application Master pour une ronde de réduire les tâches à traiter le résultat provisoires ensembles des tâches de carte.

  12. Lorsque toutes les tâches sont terminées, le Maître application envoie le jeu de résultats à l'application cliente, informe le gestionnaire de ressources que l'application a terminé avec succès, se désinscrit de la Resource Manager, et se met hors tension.

    image0.jpg

Comme les démons JobTracker et TaskTracker et fentes de traitement dans Hadoop 1, tous les démons de fil et les contenants sont des processus en cours d'exécution dans Java, JVM. Avec un fil, vous n'êtes plus obligé de définir le nombre de carte et de réduire les fentes dont vous avez besoin - vous simplement décider combien de mémoire carte et réduire les tâches peuvent avoir. Le gestionnaire de ressources va allouer conteneurs pour carte ou réduire les tâches sur le cluster basé sur la quantité de mémoire est disponible.

Lorsque vous écrivez des applications Hadoop, vous ne devez pas vous inquiéter à propos de demander des ressources et le suivi des conteneurs. Quel que soit le cadre de l'application que vous utilisez fait tout cela pour vous. Il est toujours une bonne idée, cependant, pour comprendre ce qui se passe lorsque vos applications sont exécutées sur le cluster. Cette connaissance peut vous aider énormément quand vous le suivi des progrès de l'application ou le débogage d'une tâche qui a échoué.


» » » » Comment lancer une application basée sur le fil-