Accéder aux journaux des applications Apache Hadoop YARN dans HDInsight basé sur Linux

Découvrez comment accéder aux journaux des applications Apache Hadoop YARN (Yet Another Resource Negotiator) sur un cluster Apache Hadoop dans Azure HDInsight.

Qu’est-ce qu’Apache YARN ?

YARN (Yet Another Resource Negotiator) prend en charge plusieurs modèles de programmation (dont Apache Hadoop MapReduce) en séparant la gestion des ressources de la planification et de la supervision des applications. YARN utilise les éléments suivants : ResourceManager (RM) global, NodeManagers (NM) par nœud Worker et ApplicationMasters (AM) par application. Le maître d'application, propre à chaque application, négocie les ressources nécessaires (processeur, mémoire, disque, réseau) pour exécuter l'application avec le gestionnaire de ressources. Le gestionnaire de ressources fonctionne avec les gestionnaires de nœuds pour octroyer ces ressources sous forme de conteneurs. Le maître d'application est chargé de suivre la progression des conteneurs qui lui sont assignés par le gestionnaire de ressources. Selon la nature de l'application, celle-ci peut nécessiter de nombreux conteneurs.

Chaque application peut comporter plusieurs tentatives d’application. Si une application échoue, vous pouvez la relancer. Il s’agit alors d’une nouvelle tentative. Chaque tentative est exécutée dans un conteneur. D’une certaine manière, un conteneur fournit le contexte pour l’unité de base du travail effectué par une application YARN. Tout le travail réalisé dans le contexte d’un conteneur est effectué sur l’unique nœud Worker auquel le conteneur a été donné. Pour plus d’informations, consultez Hadoop : Écriture d’applications YARN ou Apache Hadoop YARN.

Pour mettre à l’échelle votre cluster de manière à prendre en charge un plus grand débit de traitement, vous pouvez utiliser Mettre à l’échelle automatiquement ou Mettre à l’échelle vos clusters manuellement à l’aide de différents langages.

YARN Timeline Server

Apache Hadoop YARN Timeline Server fournit des informations génériques sur les applications terminées

YARN Timeline Server inclut le type de données suivant :

  • ID d’application, identificateur unique d’une application
  • Utilisateur ayant démarré l’application
  • Informations sur les tentatives effectuées afin de terminer l’application
  • Conteneurs utilisés par toute tentative d’application donnée

Applications et journaux d’activité YARN

Les journaux des applications (et les journaux d’activité des conteneurs associés) sont essentiels pour déboguer des applications Hadoop problématiques. YARN fournit une infrastructure adaptée à la collecte, à l’agrégation et au stockage des journaux des applications avec l’agrégation des journaux.

La fonction d’agrégation de journaux d’activité rend l’accès aux journaux des applications plus déterministe. Il regroupe les journaux d’activité de tous les conteneurs sur un nœud Worker et les stocke dans un fichier journal agrégé par nœud Worker. Le journal est stocké sur le système de fichiers par défaut après la fin d’une application. Votre application peut utiliser des centaines voire des milliers de conteneurs, mais les journaux d’activité de tous les conteneurs exécutés sur un nœud worker unique sont toujours regroupés dans un fichier unique. Il y a donc seulement un journal par nœud Worker utilisé par votre application. L’agrégation de journaux est activée par défaut sur les clusters HDInsight version 3.0 et versions ultérieures. Les journaux d’activité agrégés sont situés dans le stockage par défaut pour le cluster. Le chemin d’accès suivant est le chemin d’accès HDFS pour les journaux d’activité :

/app-logs/<user>/logs/<applicationId>

Dans le chemin d’accès, user est le nom de l’utilisateur qui a démarré l’application. Le applicationId est l’identificateur unique affecté à une application par le Gestionnaire de ressources YARN.

Les journaux agrégés ne sont pas lisibles directement, car ils sont écrits dans un TFile, un format binaire indexé par conteneur. Utilisez les journaux ResourceManager YARN ou les outils CLI pour afficher ces journaux au format texte brut pour les applications ou les conteneurs qui présentent un intérêt.

Journaux Yarn dans un cluster ESP

Deux configurations doivent être ajoutées à l'élément mapred-site personnalisé dans Ambari.

  1. Dans un navigateur web, accédez à https://CLUSTERNAME.azurehdinsight.net, où CLUSTERNAME est le nom de votre cluster.

  2. À partir de l’interface utilisateur Ambari, accédez à MapReduce2>Configurations>Avancé>mapred-site personnalisé.

  3. Ajoutez un des ensembles de propriétés suivants :

    Ensemble 1

    mapred.acls.enabled=true
    mapreduce.job.acl-view-job=*
    

    Ensemble 2

    mapreduce.job.acl-view-job=<user1>,<user2>,<user3>
    
  4. Enregistrez les modifications, puis redémarrez tous les services affectés.

Outils de l’interface de ligne de commande YARN

  1. Utilisez la commande ssh pour vous connecter à votre cluster. Modifiez la commande suivante en remplaçant CLUSTERNAME par le nom de votre cluster, puis entrez la commande :

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Dressez la liste des ID de toutes les applications Yarn en cours d’exécution à l’aide de la commande suivante :

    yarn top
    

    Notez l’ID d’application de la colonne APPLICATIONID dont les journaux doivent être téléchargés.

    YARN top - 18:00:07, up 19d, 0:14, 0 active users, queue(s): root
    NodeManager(s): 4 total, 4 active, 0 unhealthy, 0 decommissioned, 0 lost, 0 rebooted
    Queue(s) Applications: 2 running, 10 submitted, 0 pending, 8 completed, 0 killed, 0 failed
    Queue(s) Mem(GB): 97 available, 3 allocated, 0 pending, 0 reserved
    Queue(s) VCores: 58 available, 2 allocated, 0 pending, 0 reserved
    Queue(s) Containers: 2 allocated, 0 pending, 0 reserved
    
                      APPLICATIONID USER             TYPE      QUEUE   #CONT  #RCONT  VCORES RVCORES     MEM    RMEM  VCORESECS    MEMSECS %PROGR       TIME NAME
     application_1490377567345_0007 hive            spark  thriftsvr       1       0       1       0      1G      0G    1628407    2442611  10.00   18:20:20 Thrift JDBC/ODBC Server
     application_1490377567345_0006 hive            spark  thriftsvr       1       0       1       0      1G      0G    1628430    2442645  10.00   18:20:20 Thrift JDBC/ODBC Server
    
  3. Vous pouvez afficher ces journaux d’activité en texte brut en exécutant l’une des commandes suivantes :

    yarn logs -applicationId <applicationId> -appOwner <user-who-started-the-application>
    yarn logs -applicationId <applicationId> -appOwner <user-who-started-the-application> -containerId <containerId> -nodeAddress <worker-node-address>
    

    Définissez les valeurs <applicationId>, <user-who-started-the-application>, <containerId>, et <worker-node-address> lorsque vous exécutez ces commandes.

Autres exemples de commandes

  1. Téléchargez les journaux des conteneurs Yarn pour tous les processus maîtres d’application en utilisant la commande suivante. Cette étape crée le fichier journal nommé amlogs.txt au format texte.

    yarn logs -applicationId <application_id> -am ALL > amlogs.txt
    
  2. Téléchargez les journaux d’activité de conteneurs Yarn uniquement pour les processus maîtres d’application les plus récents à l’aide de la commande suivante :

    yarn logs -applicationId <application_id> -am -1 > latestamlogs.txt
    
  3. Télécharger les journaux d’activité de conteneurs YARN pour les deux premiers processus maîtres d’application à l’aide de la commande suivante :

    yarn logs -applicationId <application_id> -am 1,2 > first2amlogs.txt
    
  4. Téléchargez tous les journaux d’activité de conteneurs YARN à l’aide de la commande suivante :

    yarn logs -applicationId <application_id> > logs.txt
    
  5. Téléchargez le journal de conteneur Yarn pour un conteneur particulier à l’aide de la commande suivante :

    yarn logs -applicationId <application_id> -containerId <container_id> > containerlogs.txt
    

Interface utilisateur ResourceManager YARN

L’interface utilisateur ResourceManager YARN s’exécute sur le nœud principal du cluster. Il est accessible via l’interface utilisateur web d’Ambari. Procédez comme suit pour afficher les journaux d’activité YARN :

  1. Dans votre navigateur web, accédez à https://CLUSTERNAME.azurehdinsight.net. Remplacez CLUSTERNAME par le nom de votre cluster HDInsight.

  2. Dans la liste des services sur la gauche, sélectionnez YARN.

    Apache Ambari Yarn service selected.

  3. Dans la liste déroulante Liens rapides, sélectionnez l’un des nœuds principaux du cluster, puis ResourceManager Log.

    Apache Ambari Yarn quick links.

    Une liste de liens menant vers les journaux d’activité YARN s’affiche.

Étapes suivantes