2012-01-20 4 views
3

私はジョブタイミング分析を実行しています。私は、8つのノードを持つ事前に設定されたクラスタを持っています。私は8つのノード、6つのノード、4つのノードと2つのノードでそれぞれ与えられたジョブを実行し、対応する実行時間を書き留めたい。これをプログラマチックに行う方法はありますか?つまり、Javaコードのジョブ設定で適切な設定を使用することですか?Hadoopでは、プログラムごとにジョブごとのノード数を制御できますか?

答えて

1

いくつかの方法があります。同じ順序で好むだろう。

  1. excludeファイルは、タスクトラッカー/データノードの一部は、ジョブトラッカー/名前のノードに接続できないように使用することができます。これをチェックしてくださいfaq。使用される特性は、mapreduce.jobtracker.hosts.exclude.filenameおよびdfs.hosts.excludeである。ファイルが変更された後で、refreshNodesオプションのmradmindfsadminコマンドを使用して名前ノードとジョブトラッカーをリフレッシュする必要があります。また、データブロックをファイルから移動する必要があるため、除外されたノード。

  2. もう1つの方法は、ノード上のタスクトラッカーを停止することです。その後、map/reduceタスクはそのノードでスケジュールされません。しかし、データはまだすべてのデータノードからフェッチされます。したがって、データノードも停止する必要があります。名前ノードがセーフモードから抜け出し、レプリケーションファクタも適切に設定されていることを確認します(2データノード、レプリケーションファクタは3にできません)。

  3. Capacity Schedulerは、特定のジョブによるクラスタの使用を制限するためにも使用できます。しかし、リソースが空き/アイドル状態の場合、スケジューラは容量を超えてリソースを割り当て、クラスタの利用効率を高めます。これを止めることができるかどうかはわかりません。

+0

Praveenありがとうございます。私はテストしていたクラスタに対して管理者特権を持っていませんでした。最終的には、2から増やして2から始まるノードを追加し続けるだけで、より簡単だったEC2でそれをやり遂げました。あなたの答えは、将来の状況についての私の参考になります。 – chet

0

あなたはスクリプト作成にうってつけですか?そうであれば、デーモンのスタートスクリプトで遊んでください。これは実験的な設定なので、各実験のためにハープを再起動するのがいいと思います。

+0

Hadoopヘルプを再起動する方法と、Hadoopヘルプがスクリプトにどのように関連していますか? –

+0

まあ、私はスクリプトのスレーブ設定を変更することを意味しました。彼のセットアップは実験的なものだったので、スクリプトを編集する必要があると言ってプログラムでスレーブファイルを変更するだけでした。 – scrapcodes