PCにシングルノードHadoop 2.6.0クラスターをセットアップしようとしています。
http:// localhost:8088/cluster にアクセスすると、ノードが「異常なノード」としてリストされていることがわかります。
ヘルスレポートでは、次のエラーが表示されます。
1/1 local-dirs are bad: /tmp/hadoop-hduser/nm-local-dir;
1/1 log-dirs are bad: /usr/local/hadoop/logs/userlogs
どうしましたか?
local-dirs are bad
の最も一般的な原因は、ノードの利用可能なディスク容量がyarnのmax-disk-utilization-per-disk-percentage
のデフォルト値90.0%
を超えていることです。
異常なノードが実行されているディスクをクリーンアップするか、yarn-site.xml
のしきい値を増やします
<property>
<name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name>
<value>98.5</value>
</property>
最終的にディスクの空き容量がなくなった場合、または権限の問題がある場合、ジョブが失敗する可能性があるため、ディスクチェックを無効にしないでください。詳細については、 yarn-site.xml Disk Checkerセクション を参照してください。
ディレクトリにファイルシステムエラーがあると思われる場合は、次を実行して確認できます。
hdfs fsck /tmp/hadoop-hduser/nm-local-dir
Yarn-site.xmlに構成を追加してみてください
<property>
<name>yarn.nodemanager.disk-health-checker.enable</name>
<value>false</value>
</property>
私のサイトで動作します。
そして/ usr/local/hadoop/logsをrmします。例:
rm -rf /usr/local/hadoop/logs
mkdir -p /usr/local/hadoop/logs
最初は同様の問題がありました。
それから別の問題も見つけました。 jpsコマンドを使用すると、NameNode、DataNodeなどの一部のプロセスが欠落していました。
$jps
13696 Jps
12949 ResourceManager
13116 NodeManager
その後、次の solution から修正し、異常なノードの問題は自動的に修正されました。
また、yarn.nodemanager.log-dirs
in yarn-site.xml
。実際には、ディレクトリが存在しないか、間違った権限が設定されています。
brew
を使用してHadoopがインストールされたmacOSでは、/usr/local/Cellar/hadoop/2.8.1/libexec/etc/hadoop/yarn-site.xml
を次のように変更する必要がありました。
<property>
<name>yarn.nodemanager.disk-health-checker.min-healthy-disks</name>
<value>0</value>
</property>
この設定により、基本的にディスクヘルスチェックが完全にオフになりました。
brew list hadoop
を使用してファイルを見つけました。
$ brew list hadoop | grep yarn-site.xml
/usr/local/Cellar/hadoop/2.8.1/libexec/etc/hadoop/yarn-site.xml
/usr/local/Cellar/hadoop/2.8.1/libexec/share/hadoop/tools/sls/sample-conf/yarn-site.xml
同様の問題がありました。hdfsが90%に達すると、sqoopのアップロードがハングしました。 max-disk-utilization-per-disk-percentageのしきい値を変更すると、アラームのしきい値定義のアップロードが再び機能します。ありがとう
ディスクが90%(> dfを使用)のときにこれを経験し、不要なファイルを削除して85%になりました(yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-のデフォルト設定yarn-site.xmlで指定しない場合、パーセンテージは使用可能なディスクの90%を使用しており、問題は解決します。
効果は、使用率を90%以上に増やすことに似ています(私の場合、使用可能な追加スペースを圧縮するために90%がいっぱいになりました)。ただし、90%を超えないようにすることをお勧めします。