2

我想通过 GenericOptionsParser 将多个配置参数传递给我的 Hadoop 作业。

使用“-D abc=xyz”,我可以传递一个参数并能够从配置对象中检索相同的参数,但我无法传递多个参数。

是否可以传递多个参数?如果可以,如何?

4

3 回答 3

4

将参数传递为-D color=yellow -D number=10

在 run() 方法中有以下代码

String color = getConf().get("color");
System.out.println("color = " + color);

String number = getConf().get("number");
System.out.println("number = " + number);

以下是控制台中的 o/p

color = yellow
number = 10
于 2012-01-25T16:58:10.633 回答
1

从 Hadoop 1.2.1 升级到 Hadoop 2.4.1 后,我最近遇到了这个问题。问题是由于与从 Cassandra 2.0.5 引入的 commons-cli 1.1 发生冲突,Hadoop 对 commons-cli 1.2 的依赖被忽略了。

在快速浏览源代码后,它看起来像 commons-cli 选项具有未初始化的值数量(Hadoop 的 GenericOptionsParser 所做的)在 1.1 版本中默认限制为 1,在 1.2 中没有限制。

我希望这会有所帮助!

于 2014-09-03T02:51:08.557 回答
0

我测试了传递多个参数并多次使用该-D标志。

$HADOOP_HOME/bin/hadoop jar /path/to/my.jar -D mapred.heartbeats.in.second=80 -D mapred.map.max.attempts=2 ...`

这样做会将值更改为我在作业配置中指定的值。

于 2012-01-25T15:30:46.357 回答