由于hadoop集群中某台服务器磁盘损坏,导致该服务器tasktracker 任务失败率大增(失败原因:分配到该服务器的任务的临时目录选择了损坏的磁盘,导致job初始化是失败),所以决定将坏的磁盘从tasktracker中的mapred本地目录中删除,然后重启tasktracker。
操作步骤如下:
1)修改完mapred-site.xml配置文件;
2)重启tasktracker;
3)跟踪tasktracker日志,以确保tasktracker能够正常启动
在跟踪日志时,发现tasktracker启动后陷入了“假死”的状态,具体的现象如下:
1)tasktracker日志输出到下述语句后就再也没有任何输出
org.apache.hadoop.mapred.TaskTracker: Starting tasktracker with owner as hadoop
2)jobtracker活跃tasktracker列表中没有该服务器
重启tasktracker也无法解决该问题,再网上也没能找到答案,没办法,只能去尝试看tasktracker的源代码,看tasktracker在输入该条日志后,到底在做些什么?

本文记录了一次Hadoop集群中TaskTracker因服务器磁盘损坏导致任务失败,进而出现启动后假死的现象。通过分析源代码发现,TaskTracker在启动时清理本地临时文件耗时过长。解决方案是手动清理mapred本地目录下的临时文件,以使TaskTracker成功启动。
最低0.47元/天 解锁文章
1818

被折叠的 条评论
为什么被折叠?



