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