Java Hadoop MapReduce环境变量

Java Hadoop MapReduce环境变量,java,hadoop,mapreduce,yarn,Java,Hadoop,Mapreduce,Yarn,我正在试验Hadoop MapReuce环境变量。 我的用例很不寻常,但这不是我挣扎的原因 我的目标是在所有映射器和还原器上导出环境变量。 为此,我以以下方式使用mapreduce.map.env和mapreduce.reduce.env conf设置: hadoop jar myJob.jar -Dmapreduce.map.env="A=foo" 这非常有效,并且确实在我的所有映射器上显示了一个。 在这一点上,我将提到mapreduce.map.env确实缺乏互联网上的文档或用例示例 我的

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

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

hadoop jar myJob.jar -Dmapreduce.map.env="A=foo"
这非常有效,并且确实在我的所有映射器上显示了一个。 在这一点上,我将提到mapreduce.map.env确实缺乏互联网上的文档或用例示例

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

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

hadoop jar -Dmapreduce.map.env="A=foo" -Dmapreduce.map.env="B=foo2"
据我所知,如果我出错,请通过实验纠正我。此命令只会在我的映射器环境中公开B=foo2

我在网上找不到任何解决这个问题的方法


重要提示:由于我只知道要在运行时公开的env变量,它是动态的,可以更改,因此根据@cricket\u 007,我无法将env变量添加到映射的默认值/stie.xml

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


工作正常

您可以用逗号分隔一个参数。如果传递多个,它们会相互覆盖