如何使用zookeeper和hadoop在reducer之间共享读/写变量

uqdfh47h  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(424)

我的问题是:如何将zookeeper与hadoop结合使用,以便所有的reducer都可以将getdata()/setdata()转换为一个共享znode?
我的用例是,我需要在mapreduce作业中的reducer之间共享一个全局读/写变量。我正试着用zookeeper来达到这个目的。我创建了一个zookeeper对象来创建znode并给它一个初始值。下一步是,我需要所有的reducer都能够为这个znode获取getdata()/setdata()。这需要将zookeeper对象传递给所有的reducer,我不知道怎么做。我尝试序列化zookeeper对象并将其传递给还原器(通过配置属性或分布式缓存),但zookeeper类是不可序列化的。
zookeeper教程和我能找到的所有示例都演示了zookeeper和多线程应用程序,但没有一个演示如何将zookeeper与Map器或还原器结合使用。

nhhxz33t

nhhxz33t1#

你不能通过考试 ZooKeeper 对象本身到Map器/还原器。只需确定示例化 ZooKeeper 对象(如 connectionString )把它传过去 Configuration 属性。
在mapper/reducer中与zookeeper的交互与通常的java程序没有区别。

相关问题