2

Hadoopジョブを実行するときにシステムプロパティ(hadoopプロパティではない)を設定したいのですが。システムプロパティの設定は簡単ではないことがわかりました。シェルでプロパティを設定しても

export HADOOP_OPTS="$HADOOP_OPTS:-Dproperty=value"

それはまだ機能していません。hadoopコマンドラインの「-D」オプションは構成専用であり、システムプロパティ用ではありません。したがって、「-D」オプションも機能しません

誰かアイデアがありますか?ありがとう

4

2 に答える 2

7

-Dfoo.bar=example次のように、コマンドラインからジョブを開始するときに単にインラインを使用しないのはなぜですか。

hadoop jar example.jar com.example.ExampleTool -Dfoo.bar=example argument

コードでプロパティを取得するには、次を使用しますconf.get("foo.bar");


これで、本当にシステムプロパティとして設定する必要がある場合は、Hadoop構成から取得した値を使用して、コードの先頭で次のように設定できます。

String property = conf.get("foo.bar");
System.setProperty("foo.bar", property);
于 2013-03-20T10:02:09.770 に答える
5

スクリプトはこのhadoopようなJavaクラスを呼び出します

exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@"

したがって、次のようにシステム全体のプロパティを渡すことができます。

export HADOOP_OPTS="$HADOOP_OPTS -Dfoo=bar"
于 2015-06-09T04:20:08.920 に答える