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 日志会更清晰。
嗨,我刚刚想到了一个奇怪的任务:
我 运行 一个 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 日志会更清晰。