我们可以在 GenericOptionsParser 中使用 -D 选项设置多个通用参数吗?
我想通过 GenericOptionsParser 将多个配置参数传递给我的 Hadoop 作业。
使用“-D abc=xyz”,我可以传递一个参数并能够从配置对象中检索相同的参数,但我无法传递多个参数。
是否可以传递多个参数?如果是,如何传递?
I want to pass multiple configuration parameters to my Hadoop job through GenericOptionsParser.
With "-D abc=xyz" I can pass one argument and able to retrieve the same from the configuration object but I am not able to pass the multiple argument.
Is it possible to pass multiple argument?If yes how?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
传递参数为
-D color=yellow -D number=10
在 run() 方法中有以下代码
以下是控制台中的 o/p
Passed the parameters as
-D color=yellow -D number=10
Had the following code in the run() method
The following was the o/p in the console
我最近从 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 中则没有限制。
我希望这有帮助!
I recently ran in to this issue after upgrading from Hadoop 1.2.1 to Hadoop 2.4.1. The problem is that Hadoop's dependency on commons-cli 1.2 was being omitted due to a conflict with commons-cli 1.1 that was pulled in from Cassandra 2.0.5.
After a quick look through the source it looks like commons-cli options that have an uninitialized number of values (what Hadoop's GenericOptionsParser does) default to a limit of 1 in version 1.1 and no limit in 1.2.
I hope that helps!
我测试了传递多个参数,并多次使用
-D
标志。$HADOOP_HOME/bin/hadoop jar /path/to/my.jar -D mapred.heartbeats.in.second=80 -D mapred.map.max.attempts=2 ...`
这样做将值更改为我在作业配置中指定的值。
I tested passing multiple parameters and I used the
-D
flag multiple times.$HADOOP_HOME/bin/hadoop jar /path/to/my.jar -D mapred.heartbeats.in.second=80 -D mapred.map.max.attempts=2 ...`
Doing this changed the values to what I specified in the Job's configuration.