2011-12-27 12 views
5

http://gbif.blogspot.com/2011/01/setting-up-hadoop-cluster-part-1-manual.htmlを読んだところ、6ノードのhadoopクラスタがチューニングを使用できるという結論に達しました。そして、io.sort.factorは重要なトレードオフを制御するので、良い候補に見えます。私たちは調整とテストを計画していますが、先を計画して、何を期待し、何を見なければならないかを知ることは合理的です。私のhadoop設定パラメータio.sort.factorが小さすぎるか大きすぎるかどうかをどのように知ることができますか?

これは現在10です。私たちはそれがあまりにも多くの合併を引き起こしていることをどのように知っていますか?それを上げると、あまりにも多くのファイルが開かれていることが、どのようにわかるでしょうか?それはCDH3b2に更新されますよう、我々は直接ブログのログ抽出物を追跡することができない、と私たちはCDH3u2に取り組んでいる、と彼らは変更されている

注...

答えて

9

考慮すべきいくつかのトレードオフがあります。

  1. ファイルをマージするときのシーク回数。マージファクタを高くしすぎると、ディスク上のシークコストがパラレルマージからの節約を上回ります(OSキャッシュがこれを多少緩和する可能性があることに注意してください)。

  2. ソート係数を大きくすると、各パーティションのデータ量が減少します。私はソートされたデータの各パーティションの数がio.sort.mb/io.sort.factorであると信じています。私は親指の一般的なルールは、io.sort.mb = 10 * io.sort.factor(これは転送速度でのディスクのシークレイテンシに基づいていると信じています)私はこれが調整できると確信していますあなたのボトルネックであればより良いでしょう。これらを互いに整列させておくと、マージからのシークオーバーヘッドを最小限に抑える必要があります。

  3. io.sort.mbを増やすと、 、

    ので、これは

基本的には高すぎる場合は、余分のGCを引き起こして自分自身を見つけることができる - 。ジョブ・タスクに使用可能なメモリが少なくソート用のメモリ使用量はマッパタスク* io.sort.mbです

自分が大きく交換された場合は、ソート係数を高く設定してしまう可能性があります。

io.sort.mbとio.sort.factorの比率が正しくない場合は、io.sort.mb(メモリがある場合)を変更するか、ソート係数を小さくする必要があります。

マザーでリデューサーよりも多くの時間を費やしていることが分かった場合は、マップタスクの数を増やして、ソート率を下げることができます(メモリーがあると仮定して)。

関連する問題