2015-09-22 8 views
9

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

答えて

18

それはあなたのコンテナが終了コードで終了しているようだ1

デフォルトでは、ログの集約が無効になっているので、あなたは、UI上のログを見ることができません。次のパラメータは、ログ集約を決定します。 "yarn.log-aggregation-enable"(ログ集約が無効の場合は "false"に設定されます)。

これは「偽」に設定されている場合は、すべてのノードマネージャは、以下の構成パラメータによって決定されるローカルディレクトリ内のコンテナログ、保存: 「yarn.nodemanager.log-DIRSを」。

<property> 
    <name>yarn.nodemanager.log-dirs</name> 
    <value>e:\hdpdata\hadoop\logs</value> 
    </property> 

ので、特定のアプリケーションのためのすべての私のコンテナのログが、フォルダに格納されています「E:私の場合には、これがに設定されている\ hdpdataのHadoop \ログ\ \ {アプリケーションID} \ {アプリケーションマスターが実行されていたノードマネージャーマシンで、「container-id}」と入力します。

私のアプリケーション「application_1443377528298_0010」が失敗したとしましょう。 YARNRMのUI(configパラメータ:yarn.resourcemanager.webapp.addressによって決定)では、アプリケーションマネージャが実行されたノードに関する情報を取得できます。以下の図では、アプリケーションマネージャがマシン "120243"で実行されました。 enter image description here

あなたはこのマシンにログインし、フォルダ内を検索した場合、「E:\ hdpdata \ Hadoopの\ログ\ application_1443377528298_0010 \」、あなたは、アプリケーションのすべてのコンテナのログを見ることができる「application_1443377528298_0010」。

YARN RM Web UIでログを表示する場合は、ログ集計を有効にする必要があります。そのためには、糸-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に集約されています。このフォルダの下には、これまでに実行されたすべてのアプリケーションのログがあります。ここでも、ログの保持は、構成パラメータ "yarn.log-aggregation.retain-seconds"(集約ログを保持する期間)によって決まります。

MapReduceアプリケーションが実行されているときは、YARNのWeb UIからログにアクセスできます。アプリケーションが完了すると、ログはJob History Serverを介して提供されます。

Web UIのログを表示するには、アプリケーションが終了した後、MapReduce Job Historyサーバーの実行も開始する必要があります。これを有効にするには、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> 

そして、糸のサイトで次の設定パラメータを設定します。xml:

<property> 
    <name>yarn.log.server.url</name> 
    <value>http://{job-history-hostname}:19888/jobhistory/logs</value> 
    </property> 

私はHDPインストールからの設定をWindowsに複製しています。これらの設定は私の仕事です。これらもあなたのために働くはずです。

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

:以下、上述の各構成の説明については 、参照リンク
関連する問題