Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1188525
  • 博文数量: 259
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 2518
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-13 16:12
个人简介

科技改变世界,技术改变人生。

文章分类

全部博文(259)

分类: HADOOP

2015-12-10 11:52:00

1、问题

前几天因为一个hive SQL的问题,导致其中很多节点机器的磁盘空间不足,job执行结束后,临时文件删除解决了空间不足的问题;
查看发现出现了一个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
阅读(5479) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~