gpt4 book ai didi

hadoop - 如何将 ZooKeeper 与 Hadoop 一起用于在 reducer 之间共享读/写变量

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

我的问题是:我如何将 ZooKeeper 与 Hadoop 一起使用,以便所有 reducer 都可以将 getData()/setData() 到一个共享的 znode?

我的用例是我需要在我的 MapReduce 作业中的缩减器之间共享一个全局读/写变量。为此,我正在尝试使用 ZooKeeper。我创建了一个 ZooKeeper 对象,它创建一个 znode 并给它一个初始值。下一步是我需要所有的 reducer 都能够为这个 znode 调用 getData()/setData()。这需要将 ZooKeeper 对象传递给所有 reducer,我不知道该怎么做。我尝试序列化 ZooKeeper 对象并将其传递给 reducer(通过配置属性或通过分布式缓存),但 ZooKeeper 类不可序列化。

ZooKeeper 教程和我能找到的所有示例都说明了 ZooKeeper 与多线程应用程序的关系,但没有一个说明如何将 ZooKeeper 与映射器或缩减器一起使用。

最佳答案

您不能将 ZooKeeper 对象本身传递给映射器/缩减器。只需确定在映射器/缩减器(如 connectionString)中实例化 ZooKeeper 对象所需的配置,并通过 Configuration 属性传递它。

在 mapper/reducer 中与 ZooKeeper 的交互与通常的 Java 程序没有区别。

关于hadoop - 如何将 ZooKeeper 与 Hadoop 一起用于在 reducer 之间共享读/写变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28662500/

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