Hadoop MapReduce环境变量

时间:2018-08-25 13:49:08

标签: java hadoop mapreduce yarn

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

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

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

1 个答案:

答案 0 :(得分:1)

根据@ cricket_007回答:您可以逗号分隔一个参数。如果您多次通过,它们确实会相互覆盖。

工作正常