2

私はHadoopに比較的慣れておらず、hadoop jarオプションを使用しているときに、実行時に同じユーザーのさまざまなジョブをFairSchedulerのさまざまなプールに送信しようとしていました。

http://osdir.com/ml/hive-user-hadoop-apache/2009-03/msg00162.htmlのソリューションに基づいて-D、ジョブの実行中にオプションを使用しました。

具体的には、次のコマンドを実行しました。bin/hadoop jar hadoop-examples-1.0.4.jar grep input output 'dfs[a-z.]+' -D pool.name=sample_pool

ジョブトラッカースケジューラページでプールを確認できますが、ジョブは引き続きユーザープールに送信されます。-Dこのオプションはjarオプションでサポートされていないことがわかりました:http: //hadoop.apache.org/docs/r1.0.4/commands_manual.html#job

実行時にこれを指定するにはどうすればよいですか?

4

2 に答える 2

0

mapred.fairscheduler.poolまたはのパラメータを指定できると思いますmapred.fairscheduler.poolnameproperty

たとえば、コマンドを実行できます

bin/hadoop jar hadoop-examples-1.0.4.jar -Dmapred.fairscheduler.pool=sample_pool grep input output 'dfs[a-z.]+'

mapred.fairscheduler.pool:

ジョブが属するプールを指定します。これが指定されている場合、mapred.fairscheduler.poolname プロパティは無視されます。

mapred.fairscheduler.poolname プロパティ:

ジョブが属するプールを決定するために使用する jobconf プロパティを指定します。文字列、デフォルト: user.name (つまり、ユーザーごとに 1 つのプール)。もう 1 つの便利な値は、mapred.job.queue.name で、アクセス制御リストに MapReduce の「キュー」システムを使用します (以下を参照)。mapred.fairscheduler.poolname プロパティは、mapred.fairscheduler.pool が明示的に設定されていないジョブに対してのみ使用されます。

参照: Hadoop フェア スケジューラ

于 2014-03-12T02:02:47.860 に答える
0

いくつかの提案:

  • 最初のリンクで提案された変更を行ってから、ジョブ トラッカーを再起動しましたか?
  • 以前は、他の引数の前にすべての -D プロパティを設定する必要がありました (これが最近のバージョンで変更されたかどうかはわかりません)。試す:

    bin/hadoop jar hadoop-examples-1.0.4.jar -Dpool.name=sample_pool grep input output 'dfs[a-z.]+'

おそらく問題ではありませんが、私は常に(と-Dkey=value optionsの間にスペースを入れないでください) をまとめます。これにより、これが変数引数リストの一部ではないことがより明確になります。-Dkey=value

これが正しく取得されたことを確認する 1 つの方法は、ジョブ トラッカーでジョブの job.xml をチェックすることです。リストされている pool.name プロパティがあり、設定した値があるかどうかを確認します。

編集例がバンドルである方法を読んだだけで、プログラム名の後、他の引数の前に -D を追加する必要があります。

`bin/hadoop jar hadoop-examples-1.0.4.jar grep -Dpool.name=sample_pool input output 'dfs[a-z.]+' `
于 2012-11-13T11:23:42.460 に答える