Amazon EMR MapReduce 进度回滚?

Amazon EMR MapReduce progress rollback?

嗨,我刚刚想到了一个奇怪的任务:

我 运行 一个 java-MapReduce 作业与 EMR。

数据大概是1T,我用的是1master+8slave。

所有实例都是 r2.2xlarge。

最初,一切看起来都很好,如下所示:

INFO mapreduce.Job:  map 0% reduce 0%
INFO mapreduce.Job:  map 1% reduce 0%
INFO mapreduce.Job:  map 2% reduce 0%
INFO mapreduce.Job:  map 3% reduce 0%
INFO mapreduce.Job:  map 4% reduce 0%
INFO mapreduce.Job:  map 5% reduce 0%
INFO mapreduce.Job:  map 6% reduce 0%
INFO mapreduce.Job:  map 7% reduce 0%

...

但是,我刚刚注意到进度开始回落(从大约 7% 下降到 1%)。

INFO mapreduce.Job:  map 4% reduce 0%
INFO mapreduce.Job:  map 5% reduce 0%
INFO mapreduce.Job:  map 6% reduce 0%
INFO mapreduce.Job:  map 7% reduce 0%
INFO mapreduce.Job:  map 6% reduce 0%
INFO mapreduce.Job:  map 5% reduce 0%
INFO mapreduce.Job:  map 4% reduce 0%
INFO mapreduce.Job:  map 3% reduce 0%

.....

我测试3G数据时,结果是正确的,过程很顺利,没有出现这种情况。

谁能告诉我为什么会出现这种情况?

最佳。

显示的作业进度是NodeManager上报的作业已完成和进行中任务的统一状态。

作业进度逆转表明 NodeManager 已崩溃,或者它很少向 ResourceManager 发送心跳和任务状态。在这两种情况下,RM 都将其视为 NM 失败,并取消 NM 为特定未完成作业报告的所有任务进度。成功完成的任务和崩溃前 运行 的任务必须由 ApplicationMaster 重新运行。因此,失败的NM对作业进度的贡献将失效,作业进度将重新计算。

此处,输入量过大可能会导致OOM错误或任务超时。默认情况下,mapreduce.task.timeout 为 600 毫秒(10 分钟)。如果任务在超时期限内没有显示任何进度,则任务将失败。单个作业的多次失败(默认情况下为 3 次)会将 NM 列入黑名单,并重新计算进度。 Nodemanager 日志会更清晰。