突然、私のYARNクラスターが機能しなくなり、送信したすべてのものが「終了コード1」で失敗します。その問題を追跡したいのですが、アプリケーションが失敗するとすぐに、YARNはログファイルを削除します。これらのログファイルを保持するためにYARNに対して調整する必要がある構成設定は何ですか?
コンテナが終了コード1で終了しているようです。
ログの集約はデフォルトで無効になっているため、UIでログを表示することはできません。次のパラメーターはログの集約を決定します: "yarn.log-aggregation-enable"(ログの集約が次の場合は "false"に設定します)無効)。
これが「false」に設定されている場合、すべてのノードマネージャーは、次の構成パラメーターによって決定されるローカルディレクトリにコンテナーログを格納します: "yarn.nodemanager.log-dirs 」.
例えば私の場合、これは次のように設定されています。
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>e:\hdpdata\hadoop\logs</value>
</property>
したがって、特定のアプリケーションのすべてのコンテナログは、Node Managerマシンの「e:\ hdpdata\hadoop\logs\{application-id}\{container-id}」フォルダにあります。アプリケーションマスターが実行された場所。
私のアプリケーション「application_1443377528298_0010」が失敗したとしましょう。 YARNRMのUI(構成パラメーターによって決定されます:yarn.resourcemanager.webapp.address)で、アプリケーションマネージャーが実行されたノードに関する情報を取得できます。次の図では、アプリケーションマネージャはマシン「120243」で実行されています。
このマシンにログインしてフォルダ「e:\ hdpdata\hadoop\logs\application_1443377528298_0010 \」を検索すると、アプリケーション「application_1443377528298_0010」のすべてのコンテナのログを確認できます。
ただし、YARN RM Web UIを介してログを表示する場合は、ログの集計を有効にする必要があります。そのためには、yarn-site.xmlで次のパラメーターを設定する必要があります。
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/app-logs</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir-suffix</name>
<value>logs</value>
</property>
上記の設定では、ログはHDFSの「/ app-logs/{username}/logs /」に集約されます。このフォルダの下に、これまでに実行されたすべてのアプリケーションのログがあります。この場合も、ログの保持は、構成パラメーター "yarn.log-aggregation.retain-seconds"(集約されたログを保持する期間)によって決定されます。
MapReduceアプリケーションが実行されている場合、YARNのWeb UIからログにアクセスできます。アプリケーションが完了すると、ログはJob History Serverを介して提供されます。
あなたの場合、Web UIでログを表示したい場合は、アプリケーションが終了した後、MapReduceジョブ履歴サーバーの実行も開始する必要があります。これを有効にするには、mapred-site.xmlで次の構成パラメーターを設定します。
<property>
<name>mapreduce.jobhistory.address</name>
<value>{job-history-hostname}:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>{job-history-hostname}:19888</value>
</property>
そして、yarn-site.xmlで以下の構成パラメーターを設定します。
<property>
<name>yarn.log.server.url</name>
<value>http://{job-history-hostname}:19888/jobhistory/logs</value>
</property>
WindowsでのHDPインストールの設定を複製しましたが、これらの設定でうまくいきます。これらもあなたのために働くはずです。上記の各構成の説明については、以下のリンクを参照してください。
https://hadoop.Apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-common/yarn-default.xml