スパーク遅延スケジューリングおよび動的なリソース管理

スケジューリングスパークの遅延

ANY、PROCESS_NODE、NODE_LOCAL、NO_PREF、RACK_LOCAL:スパークのタスクのスケジューリングプロセスは、5つの地域のレベルを持っています。理想的な状態では、我々は確かにタスクの全ては、そのような計算効率が最良のデータが存在であるマシン上で計算されているように、すべてのタスクのスケジューリングは、PROCESS_NODEレベルをあるたいです。スパークは、スケジューリングに発生しますので、しかし、実際の状況は、次のようにタスク2があり、そうではありません。
1、データがないアイドル状態のCPUリソースであるマシン上でエグゼ
2、およびエグゼキュータ空きCPU資源場所を含むマシン上にデータが存在しません
どちらの場合は、我々は最高のデータの局所性を破棄しなければならないことがあり、これは遅延スケジューリングは、最初のケースのために、行われなければ遅延スケジューリングを必要とされたときに発生する、などのタスク(デフォルトは火花を設定されているいくつかの時間を聞かせて.locality.wait = 3S)、データが存在するが、その後、このexecutor、エグゼキュータに派遣マシンのCPUキュータ日発売予定そのCPUは、一定の期間にわたり(すなわちなど、タスクを、リリースされていない場合)それ、直接タスクエグゼキュータは、空いているCPUリソースに派遣ますが、データが存在しない、この時間は、タスクの地域レベルは高くはないが、しかし、あなたはエグゼキュータは、データをより効率的にアイドル状態のCPUを解放含まれている以上待つことがスパークする、この時間

 

スパークダイナミックリソース管理

このアイドル状態の後に一定の時間を維持する場合は、1つは、この次に、(デフォルトは60秒である)、任意のタスクエグゼキュータの実行を持っていない場合、エグゼキュータは、スパークアプリケーション実行の過程で、動的に必要なクラスタコンピューティングリソースの数に応じて決定しましたエグゼキュータは、クラスタから削除されます。ドライバタスク保留中の終了は、一定の期間を待たなければならないときに実行がスケジュールされていない(デフォルトは1秒がある)、これはエグゼキュータのアプリケーションを増加させる、そのような決定は、ダイナミックエグゼキュータは、クラスタ全体のリソースをより効率的に利用することができ、より意志が必要ですThriftServerで火花シェルとスパークSQLでの使用のために

おすすめ

転載: www.cnblogs.com/tesla-turing/p/11959032.html