为什么 Hadoop 报告 "Unhealthy Node local-dirs and log-dirs are bad"?
Why does Hadoop report "Unhealthy Node local-dirs and log-dirs are bad"?
我正在尝试在我的 PC 上设置单节点 Hadoop 2.6.0 集群。
在访问 http://localhost:8088/cluster 时,我发现我的节点被列为 "unhealthy node"。
在健康报告中,它提供了错误:
1/1 local-dirs are bad: /tmp/hadoop-hduser/nm-local-dir;
1/1 log-dirs are bad: /usr/local/hadoop/logs/userlogs
怎么了?
请尝试在yarn中添加配置-site.xml
<property>
<name>yarn.nodemanager.disk-health-checker.enable</name>
<value>false</value>
</property>
它可以在我的网站上运行。
并 rm /usr/local/hadoop/logs。
例如:
rm -rf /usr/local/hadoop/logs
mkdir -p /usr/local/hadoop/logs
local-dirs are bad
的最常见原因是节点上的可用磁盘 space 超过了 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>
避免禁用磁盘检查,因为当磁盘最终 运行 超出 space 或存在权限问题时,您的作业可能会失败。有关详细信息,请参阅 yarn-site.xml Disk Checker section。
FSCK
如果怀疑目录有文件系统错误,可以通过运行ning
检查
hdfs fsck /tmp/hadoop-hduser/nm-local-dir
也可能是yarn-site.xml
中yarn.nodemanager.log-dirs
配置的日志目录位置错误导致的。事实上目录不存在或设置了错误的权限。
我遇到了类似的问题,sqoop upload 在 hdfs 达到 90% 时就挂了。在我更改了 max-disk-utilization-per-disk-percentage 的阈值和警报阈值定义上传后再次工作。
谢谢
在使用 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
我一开始也有类似的问题。
然后我又发现了一个问题。当我使用 jps 命令时,一些进程(如 NameNode、DataNode 等)丢失了。
$jps
13696 Jps
12949 ResourceManager
13116 NodeManager
然后我从下面修复了它
并且自动修复了不健康的节点问题。
我在磁盘为 90%(使用 >df)时遇到过这种情况,我删除了不必要的文件,因此它变成了 85%(yarn.nodemanager.disk-health-checker.max-disk 的默认设置-utilization-per-disk-percentage is using 90% of available disk if you do not specify in yarn-site.xml) and the problem is solved.
效果类似于将利用率提高到 90% 以上(因此在我的情况下挤压额外的可用 space 是 90% 满)只是为了挤压额外的 space。然而,最好不要超过 90%。
有同样的问题,列出我的课程,针对:
- 不存在,
mkdir
第一个,
- memory-mb 集太大了
<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>
我正在尝试在我的 PC 上设置单节点 Hadoop 2.6.0 集群。
在访问 http://localhost:8088/cluster 时,我发现我的节点被列为 "unhealthy node"。
在健康报告中,它提供了错误:
1/1 local-dirs are bad: /tmp/hadoop-hduser/nm-local-dir;
1/1 log-dirs are bad: /usr/local/hadoop/logs/userlogs
怎么了?
请尝试在yarn中添加配置-site.xml
<property>
<name>yarn.nodemanager.disk-health-checker.enable</name>
<value>false</value>
</property>
它可以在我的网站上运行。
并 rm /usr/local/hadoop/logs。 例如:
rm -rf /usr/local/hadoop/logs
mkdir -p /usr/local/hadoop/logs
local-dirs are bad
的最常见原因是节点上的可用磁盘 space 超过了 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>
避免禁用磁盘检查,因为当磁盘最终 运行 超出 space 或存在权限问题时,您的作业可能会失败。有关详细信息,请参阅 yarn-site.xml Disk Checker section。
FSCK
如果怀疑目录有文件系统错误,可以通过运行ning
检查hdfs fsck /tmp/hadoop-hduser/nm-local-dir
也可能是yarn-site.xml
中yarn.nodemanager.log-dirs
配置的日志目录位置错误导致的。事实上目录不存在或设置了错误的权限。
我遇到了类似的问题,sqoop upload 在 hdfs 达到 90% 时就挂了。在我更改了 max-disk-utilization-per-disk-percentage 的阈值和警报阈值定义上传后再次工作。 谢谢
在使用 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
我一开始也有类似的问题。
然后我又发现了一个问题。当我使用 jps 命令时,一些进程(如 NameNode、DataNode 等)丢失了。
$jps
13696 Jps
12949 ResourceManager
13116 NodeManager
然后我从下面修复了它
我在磁盘为 90%(使用 >df)时遇到过这种情况,我删除了不必要的文件,因此它变成了 85%(yarn.nodemanager.disk-health-checker.max-disk 的默认设置-utilization-per-disk-percentage is using 90% of available disk if you do not specify in yarn-site.xml) and the problem is solved.
效果类似于将利用率提高到 90% 以上(因此在我的情况下挤压额外的可用 space 是 90% 满)只是为了挤压额外的 space。然而,最好不要超过 90%。
有同样的问题,列出我的课程,针对:
- 不存在,
mkdir
第一个, - memory-mb 集太大了
<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>