Hadoop MapReduce 环境变量



我正在试验Hadoop MapReuce环境变量。 我的用例相当不寻常,但这不是我挣扎的原因。

我的目标是在所有映射器和化简器上导出环境变量。 为此,我通过以下方式使用mapreduce.map.envmapreduce.reduce.envconf 设置:

hadoop jar myJob.jar -Dmapreduce.map.env="A=foo"

这很好用,确实在我的所有映射器上公开了A。 在这一点上,我将提到mapreduce.map.env互联网上确实缺乏文档或用例示例。

我的问题是我的项目按层运行MapReduce作业,每一层都可以将标志传递给hadoop jar命令,而我不控制上层。

因此,我可以运行以下命令:

hadoop jar -Dmapreduce.map.env="A=foo" -Dmapreduce.map.env="B=foo2"

据我所知和实验(如果我错了,请纠正我(,此命令只会在我的映射器环境中公开"B=foo2"。

我在网上找不到任何东西来克服这个问题。

无能为力的注意:由于我只知道我想在运行时公开的 env 变量(它是动态的并且可以更改(,所以我无法将 env 变量添加到 mapred-default/stie 中.xml

根据@cricket_007答案:您可以用逗号分隔一个参数。如果传递多个,它们会相互覆盖。

工作正常

相关内容

  • 没有找到相关文章

最新更新