web-dev-qa-db-ja.com

YARNのログファイルを保持する方法

突然、私のYARNクラスターが機能しなくなり、送信したすべてのものが「終了コード1」で失敗します。その問題を追跡したいのですが、アプリケーションが失敗するとすぐに、YARNはログファイルを削除します。これらのログファイルを保持するためにYARNに対して調整する必要がある構成設定は何ですか?

15
rabejens

コンテナが終了コード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」で実行されています。 enter image description here

このマシンにログインしてフォルダ「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

https://hadoop.Apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

22