通过hadoop作业跟踪器的套接字更新reducer中的全局变量/资源

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

我需要一个全局变量,可以读取/设置同时在减速机(我知道的瓶颈和性能问题,这样的设计)。我尝试使用hadoop configuration get()/set(),但是我发现在提交mapreduce作业之前需要设置配置属性,并且在reducer中使用configuration.set()实际上不会更新全局属性的值。
我能找到的最接近的东西是使用一个全局参数,而不是通过hadoop作业跟踪器的套接字读取/设置的参数,但是我找不到任何说明如何做到这一点的资源。
我的问题是:
如何通过hadoop作业跟踪器的套接字读取/设置全局变量。
是否有其他方法保持全局变量(不管性能下降)
笔记:
hadoop计数器不能为我工作,因为它们不支持set()函数
distributedcache将不起作用,因为它用于分发只读数据,而在我的例子中,我需要reducer来更新全局变量的值,该值可以由其他正在运行的reduce任务同时读取。

wqlqzqxt

wqlqzqxt1#

通常,在hadoop集群中存储可靠一致的全局变量的地方是apachezookeeper。
也就是说,在mapreduce作业中很少需要可变的全局变量。如果你分享你的用例,很有可能有一个更简单的解决方案。

相关问题