如何在Hadoop中定义共享(全局)变量?

时间:2012-12-12 20:17:11

标签: hadoop mapreduce hadoop-streaming

我需要一个可在所有映射器和缩减器之间访问的共享(全局)变量。 Mappers只是从中读取值,但reducers会更改一些值,以便在下一次迭代中使用。我知道DistributedCache是​​一种技术,但它只支持读取共享值。

1 个答案:

答案 0 :(得分:3)

这正是构建ZooKeeper的原因。 ZooKeeper可以跟上来自mappers / redurs的大量读取,并且仍然能够偶尔写一些东西。

另一种选择是set values in the configuration object。但是,这仅在全球范围内持续存在于单个作业中。您必须自己管理这个值在作业中的传递。此外,您无法在作业运行时结束此操作。