Hadoop MapReduce 环境变量
Hadoop MapReduce environment variables
我正在试验 Hadoop MapReuce 环境变量。
我的用例很不寻常,但这不是我挣扎的原因。
我的目标是在我的所有映射器和缩减器上导出环境变量。
为此,我通过以下方式使用 mapreduce.map.env
和 mapreduce.reduce.env
conf 设置:
hadoop jar myJob.jar -Dmapreduce.map.env="A=foo"
这很好用,确实在我所有的映射器上公开了 A
。
在那一点上,我会提到 mapreduce.map.env
确实缺乏互联网上的文档或用例示例。
我的问题是我的项目 运行s MapReduce jobs by layer each layer can pass flags to the hadoop jar command 而我不控制上层。
因此我可以运行以下命令:
hadoop jar -Dmapreduce.map.env="A=foo" -Dmapreduce.map.env="B=foo2"
据我所知和实验(如果我错了请纠正我)这个命令只会在我的映射器环境中公开 "B=foo2"。
我在网上找不到任何解决这个问题的方法。
重要提示:由于我只知道我想在 运行 时间公开的环境变量(它是动态的并且可以更改)我无法将环境变量添加到 mapred-default/stie。xml
根据@cricket_007 的回答:您可以用逗号分隔一个参数。如果您传递多个,它们会相互覆盖。
工作正常
我正在试验 Hadoop MapReuce 环境变量。 我的用例很不寻常,但这不是我挣扎的原因。
我的目标是在我的所有映射器和缩减器上导出环境变量。
为此,我通过以下方式使用 mapreduce.map.env
和 mapreduce.reduce.env
conf 设置:
hadoop jar myJob.jar -Dmapreduce.map.env="A=foo"
这很好用,确实在我所有的映射器上公开了 A
。
在那一点上,我会提到 mapreduce.map.env
确实缺乏互联网上的文档或用例示例。
我的问题是我的项目 运行s MapReduce jobs by layer each layer can pass flags to the hadoop jar command 而我不控制上层。
因此我可以运行以下命令:
hadoop jar -Dmapreduce.map.env="A=foo" -Dmapreduce.map.env="B=foo2"
据我所知和实验(如果我错了请纠正我)这个命令只会在我的映射器环境中公开 "B=foo2"。
我在网上找不到任何解决这个问题的方法。
重要提示:由于我只知道我想在 运行 时间公开的环境变量(它是动态的并且可以更改)我无法将环境变量添加到 mapred-default/stie。xml
根据@cricket_007 的回答:您可以用逗号分隔一个参数。如果您传递多个,它们会相互覆盖。
工作正常