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

发布于 2024-12-28 21:15:06 字数 146 浏览 2 评论 0原文

我想通过 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夕嗳→ 2025-01-04 21:15:06

传递参数为 -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

Passed the parameters as -D color=yellow -D number=10

Had the following code in the run() method

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

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

The following was the o/p in the console

color = yellow
number = 10
缱倦旧时光 2025-01-04 21:15:06

我最近从 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!

红颜悴 2025-01-04 21:15:06

我测试了传递多个参数,并多次使用 -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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文