我有一个 MapReduce 作业,我使用job.waitForCompletion(true)
. 如果一个/多个 reducer 任务在作业执行期间被杀死或崩溃,则整个 MapReduce 作业将重新启动,并且映射器和 reducer 将再次执行(文档)。以下是我的问题:
1] 我们能否在作业开始时知道作业是重新开始还是由于上一次运行中的某些故障而重新启动?(这使我进入了第二季度)
2] 计数器可以提供帮助吗?如果某些任务失败,计数器的值是否会被保留,从而导致整个作业重新启动?
3] Hadoop 是否提供任何内置检查点方法来跟踪先前的计算并帮助避免在失败/崩溃之前执行映射器和化简器完成的相同计算?
抱歉,如果问题的措辞不清楚。谢谢您的帮助。