2

GenericOptionsParser を介して複数の構成パラメーターを Hadoop ジョブに渡したいと考えています。

「-D abc=xyz」を使用すると、1 つの引数を渡すことができ、構成オブジェクトから同じ引数を取得できますが、複数の引数を渡すことはできません。

複数の引数を渡すことは可能ですか?もしそうなら、どのように?

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 に答える