在弹性mapreduce流作业中,如果映射器突然死亡,会发生什么?是否将重播已处理的数据?如果是,有没有禁用的选项?
我之所以这么问,是因为我正在使用电子病历将一些数据插入第三方数据库。每个映射器都通过HTTP发送数据。在这种情况下,如果映射器崩溃,我不想重放HTTP请求,我需要继续留在原地。
MR是一个容错框架。当Map任务失败(流式API或Java API)时,行为是相同的。
一旦作业跟踪器收到任务失败的通知,它将尝试重新安排任务。失败任务生成的临时输出将被删除。
关于如何在MR中处理故障的更详细的讨论可以在中看到
对于您的特定情况,我认为您需要参考setup()方法中的外部源来找出已处理的记录,然后在mapper()方法中将这些信息用于决定是否应该处理特定记录。