前言:
MapReduce计算框架提供了很好的容错机制,本篇文章就是来介绍该框架是如何来容错的,我们可以从错误出现的情况来探讨该框架是如何容错的,常见的错误有作业错误、网络错误甚至数据错误。
- 任务出错
任务出错是比较常见的,引起错误的原因通常有低质量的代码、数据损坏、节点暂时性故障、一个任务出现下列三种情况的任意一种时被认为出错。(1)抛出一个没有铺货的异常(2)以一个非零值退出程序(3)在一定的事件内没有向Tasktracker报告进度。当TaskTracker检测到一个错误,TaskTracker将在下一次心跳里向JobTracker报告该错误,JobTracker收到报告的错误后,将会判断是否需要进行重试,如果是,则重新调度该任务。默认的尝试次数为4次,可以通过mapred-sit