web-dev-qa-db-fra.com

Pourquoi mon application de fil n'a-t-elle pas de journaux même si la journalisation est activée?

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.

10
Sother
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
9
franklinsijo

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

2
Christina Fisher

Activer l'agrégation de journaux

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>
2
Ani Menon

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 ..

1
ML_TN