我正在尝试在我的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
出了什么问题?
答案 0 :(得分:46)
local-dirs are bad
的最常见原因是节点上的可用磁盘空间超过了纱线的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 section。
如果您怀疑目录中存在文件系统错误,可以通过运行
进行检查hdfs fsck /tmp/hadoop-hduser/nm-local-dir
答案 1 :(得分:7)
请尝试在yarn-site.xml中添加配置
<property>
<name>yarn.nodemanager.disk-health-checker.enable</name>
<value>false</value>
</property>
它可以在我的网站上运行。
并且/ usr / local / hadoop / logs。 例如:
rm -rf /usr/local/hadoop/logs
mkdir -p /usr/local/hadoop/logs
答案 2 :(得分:3)
也可能是由yarn.nodemanager.log-dirs
中yarn-site.xml
配置的错误日志目录位置引起的。事实目录不存在或设置了错误的权限。
答案 3 :(得分:3)
起初我有类似的问题。
然后我还发现了另一个问题。当我使用jps命令时,缺少诸如NameNode,DataNode等的某些进程。
$jps
13696 Jps
12949 ResourceManager
13116 NodeManager
然后我从以下内容修复了它 solution 并自动修复了不健康的节点问题。
答案 4 :(得分:1)
在使用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
答案 5 :(得分:0)
我遇到了类似的问题,当hdfs达到90%时,sqoop上传才被挂起。更改了max-disk-utilization-per-disk-percentage和警报阈值定义的阈值后,上载再次起作用。 感谢
答案 6 :(得分:0)
当磁盘为90%(使用> df)时,我会遇到这种情况,然后我删除了不必要的文件,因此磁盘变成了85%(yarn.nodemanager.disk-health-checker.max-disk-utilization-per的默认设置-disk-percentage使用了90%的可用磁盘(如果未在yarn-site.xml中指定),则问题已解决。
效果类似于将利用率提高到90%以上(因此,在我的情况下,将额外的可用空间压缩为90%已满),只是为了挤压更多的空间。但是,优良作法是始终不要达到90%以上。
答案 7 :(得分:0)
有同样的问题,请列出我的原因,FYR:
mkdir
, <property>
<name>yarn.nodemanager.local-dirs</name>
<value>/tmp/yarn/nm</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/tmp/yarn/container-logs</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>364000</value>
</property>