【问题标题】:Amazon EMR MapReduce progress rollback?Amazon EMR MapReduce 进度回滚?
【发布时间】:2023-03-07 06:00:01
【问题描述】:

你好,我刚刚想出了一个奇怪的任务:

我使用 EMR 运行 java-MapReduce 作业。

数据大约1T,我用了1个master+8个slave。

所有实例都是 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数据一样测试时,结果是对的,过程很顺利,没有出现这种情况。

谁能告诉我为什么会发生这种情况?

最好的。

【问题讨论】:

    标签: amazon-web-services hadoop mapreduce amazon-emr elastic-map-reduce


    【解决方案1】:

    显示的作业进度是NodeManagers报告的作业的已完成和正在进行的任务的统一状态。

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

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

    【讨论】:

    • 嗨@franklinsijo,最后,我重置了地图并减少了内存以克服这种情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多