您的位置:首页 > Web前端 > Node.js

hadoop Unhealthy Nodes问题解决

2016-04-13 14:27 579 查看
1、问题

前几天因为一个hive SQL的问题,导致其中很多节点机器的磁盘空间不足,job执行结束后,临时文件删除解决了空间不足的问题;

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

1/4 local-dirs turned bad: /data1/hadoop/yarn/local;1/4 log-dirs turned bad: /data1/hadoop/yarn/log

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



2、原因

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

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

3、解决

重启nodemanager:

sbin/yarn-daemon.sh stop nodemanager  

sbin/yarn-daemon.sh start nodemanager  

重启resourcemanager(否则会导致修改的节点状态错乱)

sbin/yarn-daemon.sh stop resourcemanager  

sbin/yarn-daemon.sh start resourcemanager  

刷新页面,unhealthy的nodemanager已经消失。

或者

修改hadoop的core-site.xml配置文件中一下内容,即将hadoop.tmp.dir的目录配置到一个空间足够的目录下:

hadoop.tmp.dir

/home/hadoop_tmp

命令显示yarn各节点状态:

yarn node -list -all 

参考:http://blog.csdn.net/lazythinker/article/details/47832117
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: