我有一份猪计划,计划每天通过Hadoop Job Scheduler运行。它有时可以很好地工作,但偶尔会出现错误,如下所示。它每天都会报告失败的原因。
第01天:
Error: java.io.IOException: No space left on device
第02天:
ENOENT: No such file or directory
第3天:
Lost task tracker: tracker_bos-hadoop14.co.com:localhost/127.0.0.1:48865
第04天:
Lost task tracker: tracker_bos-hadoop11.co.com:localhost/127.0.0.1:46408
请建议如何使我的工作更可靠,更能适应这些问题。
有没有最好的做法来处理这种hadoop失败?
答案 0 :(得分:0)
前两个有点相关 - 如果磁盘空间不足,当无法在本地磁盘上chmod任务文件夹时,也可以从任务跟踪器获取第二条消息(由于缺少mkdir失败后空间)。
您需要检查后两个运行TaskTracker的节点中的任务跟踪器日志。
如果没有关于你的猪工作做什么,或者它处理多少数据(输入和输出)的进一步背景,我的猜测是你可能需要扩展你的集群(如果你正在运行psuedo-distributed),或者看看你在shuffle阶段的数据分布 - 你的Key,Value对中的大多数都是单一的reducer,你能修改reducers的数量还是你的算法来减少被洗牌的数据量?)