gpt4 book ai didi

hadoop - 我可以在 Hadoop 的 redurer 中依赖 mapper 的计数器吗?

转载 作者:可可西里 更新时间:2023-11-01 15:12:26 25 4
gpt4 key购买 nike

让我们考虑一下我在映射器中更改计数器值并想在缩减器中使用该信息的情况。

看起来我们可以保证在所有映射器完成之前不会调用 reduce 函数。这是否考虑了正在推测执行的映射器?由于推测执行,reducer 会看到不相关的值吗?

最佳答案

Reducers 的执行时间由配置参数决定:mapreduce.job.reduce.slowstart.completedmaps(在 mapred-site.xml 中)。默认设置为“0.05”。这意味着,当大约 5% 的 Mappers 完成时,Reducers 将被安排执行。

您可以调整此参数以获得不同的结果。例如将其设置为“1.0”将确保只有在 100% 的映射器完成后,Reducers 才会启动。

Redcuer 任务将开始从已完成执行的映射器复制数据。但是,reduce() 方法将被调用,只有当来自所有映射器的数据都被 reducer 复制时。

此链接:When do reduce tasks start in Hadoop? , 清楚地解释了这个过程。

至于推测执行,它仅在 Mappers/Reducers 的情况下被触发,与其他 Mappers/Reducers 相比落后。 如果同一个Mapper实例重复执行,并不意味着计数器也重复。为每次任务尝试维护任务计数器。如果任务尝试失败或被杀死(由于推测执行),则该尝试的计数器将被丢弃。因此,投机执行不会对整体柜台值(value)产生影响。

您必须记住的一件事是,计数器值只有在作业成功完成后才是确定的。

关于hadoop - 我可以在 Hadoop 的 redurer 中依赖 mapper 的计数器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34356685/

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