hadoop Unhealthy Nodes问题解决

来源:互联网 发布:hi3531编程 编辑:程序博客网 时间:2024/06/11 02:22

1、问题来源

前几天因为一个hive SQL的问题,导致其中一台机器的磁盘空间不足,删除临时文件解决了空间不足的问题;

查看http://hadoop/cluster/nodes/unhealthy 发现出现了一个unhealty节点,错误信息如下

1/1 local-dirs turned bad: /usr/local/goldmine/hadoop/tmp/nm-local-dir;
1/1 log-dirs turned bad: /usr/local/goldmine/hadoop/hadoop-2.4.0/logs/userlogs

虽然空间问题解决了,但是unhealthy节点确没有恢复;


2、原因查找

NodeManager默认会每两分钟检查本地磁盘(local-dirs),找出那些目录可以使用。注意如果判定这个磁盘不可用,则在重启NodeManager之前,就算磁盘好了,也不会把它变成可用。代码在LocalDirsHandlerService,DirectoryCollection。

当好磁盘数少于一定量时,会把这台机器变成unhealthy,将不会再给这台机器分配任务。


3、解决方案-重启相关服务

3.1 重启nodemanager: 

     /usr/local/goldmine/hadoop/default/sbin/yarn-daemon.sh stop nodemanager
     /usr/local/goldmine/hadoop/default/sbin/yarn-daemon.sh start nodemanager
3.2 重启resourcemanager,(否则会导致修改的节点状态错乱) 

    /usr/local/goldmine/hadoop/default/sbin/yarn-daemon.sh stop resourcemanager
    /usr/local/goldmine/hadoop/default/sbin/yarn-daemon.sh start resourcemanager
3.3 刷新http://hadoop/cluster/nodes/unhealthy页面: 
可以看到不健康的nodemanager已经消失在列表了。
3.4 命令显示yarn各节点状态: 
    yarn node -list -all





参考:

1、hadoop Unhealthy Nodes

2、hadoop-2.6.0 Unhealthy Nodes 问题,hadoop2.6.0安装

3、hadoop本地目录相关代码分析


0 0
原创粉丝点击