gpt4 book ai didi

hadoop - cleanup() 方法是否为失败的 map task 调用?

转载 作者:可可西里 更新时间:2023-11-01 16:33:40 25 4
gpt4 key购买 nike

是否为失败的 map task 调用了 cleanup() 方法?如果是这样,它如何确保“原子性”?

在我的例子中,我正在映射器中准备一些统计信息,这些统计信息在 cleanup() 方法中写入数据库。在这种情况下,如果映射器在执行其输入拆分的过程中失败,清理方法会将 till 处理后的数据写入 DB?这将导致不正确的统计信息,因为备用映射器尝试也会再次写入相同的数据。

最佳答案

根据您的映射器何时失败,可能会调用或不调用清理。例如,如果您的映射器在 map 方法中失败,则不会调用清理。但是,如果您的映射器在清理方法中失败,则清理已经被调用。

如果映射器失败,hadoop 通常会在另一台机器上重新启动映射器任务。因此,您需要确保多次运行映射器或缩减器始终输出相同的结果,否则将难以调试。

针对您的情况,您可以设置一些Counter来收集统计数据,并在您的Job成功后读取Counters。如果某个 mapper 失败,Counters 部分将被丢弃。工作成功后的计数器将保证是正确的。

关于hadoop - cleanup() 方法是否为失败的 map task 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17417938/

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