Sparkアプリケーション
Databricks 無料トライアル
Spark アプリケーションとは、ドライバプロセスと一連のエグゼキュータプロセスで構成されるアプリケーションプログラムです。ドライバプロセスは、main() 関数を実行し、クラスタのノード上で動作します。また、3 つの役割があり、Spark アプリケーションに関する情報管理、ユーザーのプログラムや入力への応答、およびエグゼキュータ(瞬間的に定義)全体におけるタスクの分析、分散、スケジューリングを行います。ドライバプロセスは必要不可欠です。Sparkアプリケーションの中心であり、アプリケーションのライフタイム全体にわたって全ての関連情報を保持します。エグゼキュータは、ドライバが割り当てたタスクを実行します。各エグゼキュータの役割としては、ドライバから割り当てられたコードの実行、およびそのエグゼキュータでの計算の進捗をドライバノードに報告するという2つがあります。クラスタマネージャは、物理マシンを制御し、Spark アプリケーションにリソースを割り当てます。これは、複数あるコアなクラスタマネージャ(Spark 独自のスタンドアローンクラスタマネージャ、YARN、またはMesos)のうちの1つとすることができます。また、クラスタ上で複数の Spark アプリケーションを同時に実行することも可能です。クラスタマネージャについては、第 4 章「プロダクションアプリケーション」で詳しく説明しています。上の図では、左側にドライバ、右側に 4 つのエグゼキュータが示されていますが、クラスタノードの概念は省いています。ユーザーは、設定により各ノードに割り当てられるべきエグゼキュータの数を指定することができます。