2017-01-13 11 views
1

中変化並列Iは、2つの部分に分割されたジョブを持っている:スパーク - 実行

  • 最初の部分は、HBaseのからデータを取得
  • スパークを用いseoncd部分が
重いCPU集中MLアルゴリズムを計算します

問題は、エグゼキュータ/コアの数が多い場合、HBaseクラスタが過度に積極的にクエリされ、これにより生産が不安定になる可能性があることです。 エグゼキュータ/コアの数が少なすぎると、MLの計算に時間がかかります。

起動時にエグゼキュータおよびコアの数が設定されるため、ジョブの最初の部分のエグゼキュータ番号を減らす方法があるかどうかを知ることができます。

私は明らかに、Hadoopがこれらの2つのステップの間でのマンダリ・ディスクのシリアライゼーションのような2つの別々のジョブを実行しないようにしたいと思います。

おかげであなたの助け

答えて

0

のために私はdynamic allocationあなたが探しているものであると思います。これはスパークストリーミングでも使用できます。

データの取り込みとデータ処理のバランスを取るために、RDDサイズを少しでも使わなければならないかもしれないが、実際の使用状況に応じて、それは本当に難しいかもしれない。

+0

ご協力ありがとうございます。あなたのRDDサイズで少し遊んでどういう意味ですか?データを10個のRDDに分割して、それらを結合しますか? – ogen

+0

私は、自分の理解が正しい場合(あなたのパーティションの数を減らし、目的に応じてアプリケーションを遅くしたい場合)、各段階、特に最も早い段階でRDDを再分割する方法を説明します。フェーズでは、より多くのエグゼキュータを必要とし、より多くのエグゼキュータをパーティション分割して再分割する必要があり、動的割り当てによって残りの部分が処理される可能性があります。 explain()を使用して、各ステップごとに常に動作するようにします。 –

関連する問題