2013-11-28 6 views
6

私はhadoop2.2.0を3つのクラスタに設定しました。すべてがうまくいっています。 NodeManagerとDatanodeは各クラスタで開始されます。私はWORDCOUNT例を実行した場合でも、100%のマッピングが行われ、それが例外を以下与える:YarnException:許可されていないコンテナの開始要求

map 100% reduce 0% 
13/11/28 09:57:15 INFO mapreduce.Job: Task Id : attempt_1385611768688_0001_r_000000_0, Status : FAILED 
Container launch failed for container_1385611768688_0001_01_000003 : org.apache.hadoop.yarn.exceptions. 
YarnException: Unauthorized request to start container. 
This token is expired. current time is 1385612996018 found 1385612533275 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 

私は解決策を見つけるためにインターネットを介して行っています。しかし、私は見つけることができませんでした。私を助けてください。

+0

誰もがこの問題への解決策を持っています? – Sudo

答えて

6

この例外は、ノードの時刻設定が異なる場合に発生します。 3つのノードすべてに同じ時間nのタイムゾーン設定があることを確認してから、コンピュータを再起動します。

これは私のために働いた。あなたにもこの助けを願って!!!!

+2

私はすべてのノードで次のコマンドを使って時刻を設定しました:date +%T%p -s "7:00:00 AM"、ノードを再起動しなくてもうまくいきました! – airin

3

デフォルトで

yarn.resourcemanager.rm.container-allocation.expiry-interval-ms

を設定することにより、容器の寿命を増加させることになるオプションの1つは、例えば

10分です
糸-site.xmlのため
サービスワイド/アドバンスト
YARNサービス設定安全弁

<property> 
     <name>yarn.resourcemanager.rm.container-allocation.expiry-interval-ms</name> 
     <value>1000000</value> 
    </property> 
3

越えてちょうど時間の設定、ノードがNTPを実行しているか、合理的に時間同期されていることを確認します - 私は同じ問題を抱えていて、ノードの1つが間違ってYEARの日付を設定していたことを発見しました。いったん私は時間がお互いの秒以内に置くと、エラーは消え去った。

0

このエラーが突然表示される場合は、仮想マシンの時間がずれている可能性があります。

すべての仮想マシンは、時間のずれが発生する可能性があります。その既知の適切な時刻ソースに同期していない場合

システム時間が長時間実行されているクラスタ上で数分をドリフトすることができます。したがって、独自のシステムTimeを使用しているすべてのクラスタノードは、時間の経過と共に散発的に変化します。

ドリフトが目立たない可能性があるため、Hadoopジョブは最初は正常に実行される可能性があります。しかし、長時間稼働しているクラスタでは、作業時間の1つが(マスタの時間と比較して)10分を超えると長すぎると、ジョブは失敗します。これは、この作業者でスケジュールされたYARNコンテナが、 AMはそれを提出する。

重要な部分がある:

「任意の容器の場合は、対応するNMは、デフォルトは10分で、コンテナは 時間の設定された間隔内で実行されている開始したことRM に報告していない場合コンテナは死んだとみなされ、 はRMによって期限切れになります。「

あなたがここにYARNコンテナの割り当てについての詳細を学ぶことができます。http://hortonworks.com/blog/apache-hadoop-yarn-resourcemanager/

をですから、糸-site.xmlの設定ファイルにyarn.resourcemanager.rm.container-allocation.expiry-interval-msを増やす場合、ジョブは動作します

しかし、それはただのです一時的な回避策。


実際の問題を回避するには、いくつかの同期を使用する必要がありますNTPのようなメカニズム。

NTPは、グローバルタイムサーバとマスター/ワーカーノードとの時間同期を担当します。

クラスタのすべてのノードでNTPデーモンが起動していることを確認する必要があります。また、NTPは、クラスタのライフサイクル全体で「同期」(ntpstat)のままでなければなりません。 NTP引き起こす可能性がありますいくつかの明白な問題

  • あなたのファイアウォールはあなたがNTPと競合する別の時間同期とAD 環境を有することもUDPポート123
  • を遮断することができるunが同期。

http://support.ntp.org/bin/view/Support/TroubleshootingNTP

関連する問題