hadoop 错误处理机制
1.硬件故障
硬件故障是指jobtracker故障或TaskTracker 故障
jobtracker是单点,若发生故障,目前hadoop 还无法处理,唯有选择最牢靠的硬件作为jobtracker
jobtracker通过心跳(周期1分钟) 信号来了解TaskTracker 是否发生故障或者负载过重
jobtracker 将从任务节点列表中移除发生故障的TaskTracker
如果故障节点在执行map任务并且尚未完成,jobtracker 会要求其他节点 重新执行 次map 任务
如果故障节点在执行 reduce 任务尚未完成, jobtracker 会要求其他节点继续执行尚未完成的 reduce 任务
2.任务失败
由于代码的缺陷或者进程崩溃引起任务失败
jvm 自动退出, 想TaskTracker 父进程发送错误信息,错误信息也会写入日志
TaskTracker 监听程序会发现进程退出,或者很久没有更新信息送回 , 将任务标记为失败
标记任务失败后,任务计数器减去1 以便接受新的任务,并通过心跳信号告诉 jobtracker任务失败信息
jobtracker 获悉任务失败后,将把该任务重新放入调度队列,从新分配出去再执行
如果一个任务失败超过4次(可设置),将不会再被执行,同时作业也宣布失败.