gpt4 book ai didi

java - 如何知道MapReduce作业是否已重新启动或重新开始?

转载 作者:行者123 更新时间:2023-12-02 22:00:16 26 4
gpt4 key购买 nike

我有一个MapReduce作业,使用job.waitForCompletion(true)运行。如果一个/多个reducer任务在执行作业期间被杀死或崩溃,则将重新启动整个MapReduce作业,并再次执行映射器和reducer(文档)。这是我的问题:

1]我们能否在作业开始时知道该作业是重新开始还是由于先前运行中的某些故障而重新启动? (这导致我进入第二季度)

2]柜台可以帮忙吗?如果某些任务失败,计数器的值是否会结转,从而导致整个作业重新启动?

3] Hadoop是否提供任何内置的检查点方法来跟踪先前的计算,并有助于避免在失败/崩溃之前执行由映射器和化简器进行的相同计算?

抱歉,如果您对这些问题的措词不明确。
谢谢您的帮助。

最佳答案

  • 对术语的一些更正。如果作业的一项或多项任务失败,则该作业不会重新启动。任务可能会重新启动。从映射器/缩减器上下文中,您可以获取https://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapreduce/TaskAttemptContext.html#getTaskAttemptID(),其中包含尝试号作为id的最后一个标记。
  • 来自失败任务尝试的计数器更新不会汇总到作业总数中,因此不必担心计数过多。
  • 通常不会。框架清除了失败任务的输出。如果您担心由于任务失败而失去昂贵的计算成本,我建议将您的工作分为多个映射/缩减阶段。
    您也可以拥有自己的可变分布式缓存,但是也不建议这样做。
  • 关于java - 如何知道MapReduce作业是否已重新启动或重新开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38003721/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com