我们可以在GenericOptionsParser中使用-D选项设置多个通用参数吗?

时间:2012-01-25 12:29:16

标签: hadoop command-line-arguments jvm-arguments

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

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

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

在快速查看源代码后,看起来像commons-cli选项具有未初始化的值(Hadoop' GenericOptionsParser所做的)在1.1版中默认为1,在1.2中没有限制。 / p>

我希望有所帮助!

答案 2 :(得分:0)

我测试了多个参数,我多次使用-D标志。

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

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