J'ai activé les journaux dans le fichier xml: yarn-site.xml
, et j'ai redémarré yarn
en faisant:
Sudo service hadoop-yarn-resourcemanager restart
Sudo service hadoop-yarn-nodemanager restart
J'ai exécuté mon application, puis je vois le applicationID
dans yarn application -list
. Donc, je fais ceci: yarn logs -applicationId <application ID>
, et j'obtiens ce qui suit:
hdfs://<ip address>/var/log/hadoop-yarn/path/to/application/ does not have any log files
Dois-je changer une autre configuration? Ou est-ce que j'accède aux journaux dans le mauvais sens?
Je vous remercie.
yarn application -list
répertorie uniquement les applications qui se trouvent dans [~ # ~] soumises [~ # ~], [~ # ~] accepté [~ # ~] ou [~ # ~] en cours d'exécution [~ # ~] état.
L'agrégation de journaux collecte les journaux de chaque conteneur et les déplace vers le répertoire configuré dans yarn.nodemanager.remote-app-log-dir
uniquement après la fin de la demande. Reportez-vous à la description de yarn.log-aggregation-enable
propriété ici .
Ainsi, le applicationId
répertorié par la commande n'est pas encore terminé et les journaux ne sont pas encore collectés. Ainsi, la réponse lorsque vous essayez d'accéder aux journaux d'une application en cours d'exécution
hdfs://<ip address>/var/log/hadoop-yarn/path/to/application/ does not have any log files
Vous pouvez essayer la même commande yarn logs -applicationId <application ID>
pour afficher les journaux une fois l'application terminée.
Pour répertorier toutes les applications [~ # ~] terminées [~ # ~], utilisez
yarn application -list -appStates FINISHED
Ou pour lister toutes les applications
yarn application -list -appStates ALL
Dans la version 2.3.2 de hadoop et versions supérieures, vous pouvez obtenir une agrégation de journaux toutes les heures lors de l'exécution de travaux à l'aide de cette configuration dans yarn-site.xml:
<property>
<name>yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds</name>
<value>3600</value>
</property>
Voir ceci pour plus de détails: https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.2/bk_yarn_resource_mgt/content/ref-375ff479-e530-46d8-9f96-8b52dadb5183.1.html
L'agrégation de journaux est activée dans le yarn-site.xml
fichier. La propriété yarn.log -gregation-enable active l'agrégation des journaux pour les applications en cours d'exécution.
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
Il a probablement été enregistré avec un autre appOwner. Vous pouvez essayer de spécifier le propriétaire de l'application dans votre commande:
journaux de fils -appOwner .. -application_id ..