XMLファイルyarn-site.xml
でログを有効にし、次のようにしてyarn
を再起動しました。
Sudo service hadoop-yarn-resourcemanager restart
Sudo service hadoop-yarn-nodemanager restart
アプリケーションを実行すると、yarn application -list
にapplicationID
が表示されます。だから、私はこれを行います:yarn logs -applicationId <application ID>
、そして私は以下を取得します:
hdfs://<ip address>/var/log/hadoop-yarn/path/to/application/ does not have any log files
他の構成を変更する必要がありますか?または、ログに間違った方法でアクセスしていますか?
ありがとうございました。
yarn application -list
[〜#〜] submitted [〜#〜]のいずれかにあるアプリケーションのみを一覧表示します、[〜#〜]受け入れられます[〜#〜]または[〜#〜]実行中[〜#〜]状態。
ログの集約では、各コンテナーのログを収集し、アプリケーションの完了後にのみ、これらのログをyarn.nodemanager.remote-app-log-dir
で構成されたディレクトリに移動します。 yarn.log-aggregation-enable
プロパティ ここ の説明を参照してください。
したがって、コマンドによってリストされたapplicationId
はまだ完了しておらず、ログはまだ収集されていません。したがって、実行中のアプリケーションのログにアクセスしようとしたときの応答
hdfs://<ip address>/var/log/hadoop-yarn/path/to/application/ does not have any log files
アプリケーションが完了したら、同じコマンドyarn logs -applicationId <application ID>
を試行してログを表示できます。
すべての[〜#〜]終了[〜#〜]アプリケーションをリストするには、
yarn application -list -appStates FINISHED
または、すべてのアプリケーションを一覧表示する
yarn application -list -appStates ALL
Hadoopのバージョン2.3.2以降では、yarn-site.xmlで次の構成を使用して、実行中のジョブで1時間ごとにログの集計を行うことができます。
<property>
<name>yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds</name>
<value>3600</value>
</property>
詳細については、こちらをご覧ください: https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.2/bk_yarn_resource_mgt/content/ref-375ff479-e530-46d8-9f96-8b52dadb5183.1.html
ログ集計はyarn-site.xml
ファイルで有効になっています。 yarn.log-aggregation-enableプロパティは、実行中のアプリケーションのログ集約を有効にします。
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
おそらく別のappOwnerで保存されました。コマンドでアプリケーションの所有者を指定することができます:
ヤーンログ-appOwner .. -application_id ..