我想通过 GenericOptionsParser 将多个配置参数传递给我的 Hadoop 作业。
使用“-D abc=xyz”,我可以传递一个参数并能够从配置对象中检索相同的参数,但我无法传递多个参数。
是否可以传递多个参数?如果可以,如何?
我想通过 GenericOptionsParser 将多个配置参数传递给我的 Hadoop 作业。
使用“-D abc=xyz”,我可以传递一个参数并能够从配置对象中检索相同的参数,但我无法传递多个参数。
是否可以传递多个参数?如果可以,如何?
将参数传递为-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
从 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 中没有限制。
我希望这会有所帮助!
我测试了传递多个参数并多次使用该-D
标志。
$HADOOP_HOME/bin/hadoop jar /path/to/my.jar -D mapred.heartbeats.in.second=80 -D mapred.map.max.attempts=2 ...`
这样做会将值更改为我在作业配置中指定的值。