gpt4 book ai didi

java - Hadoop MapReduce的Java实现中如何创建全局变量?

转载 作者:可可西里 更新时间:2023-11-01 15:07:10 24 4
gpt4 key购买 nike

现在我想创建一个全局双变量(成员),它可以被 MapReduce 作业中的每个映射器/缩减器访问和更改。起初我试图在我的主 java 文件中声明一个静态 double 成员,但这似乎有问题,因为每个映射器/缩减器都在单独的 JVM 上运行,并且可以正确更改和访问该成员。

我知道对于 int 变量有 counter 机制。但是,如果我想创建一个全局 double 变量,我该怎么做呢?

我的最终目标是总结所有映射器/缩减器中的双重格式。如果我不能或不应该创建全局变量,是否有任何其他方法可以实现该目标?

最佳答案

这些 double 来自哪里?如果它们在输入数据中,您可以将其作为正常的 MR 作业来完成。让您的映射器始终输出相同的键和要求和的值。使用组合器在每个映射器中本地求和。然后只使用一个 reducer 并让它简单地发出总和。

“全局”状态正是 Map-Reduce 范式试图避免的。您必须尝试将所有事情都视为在单独的映射器中执行不同部分的工作,然后在缩减器中组合/聚合。

关于java - Hadoop MapReduce的Java实现中如何创建全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13225825/

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