まず、thisを読んでください。
用語、さまざまな役割、および責任について理解したら、下記の段落をまとめてお読みください。
スパークアプリケーションを実行するさまざまな方法があります(スパークアプリケーションは、エントリポイントを持つクラスファイルの束です)。
スパークアプリケーションを単一のJavaプロセスとして実行できます(通常は開発用です)。これは、sbt run
を実行すると起こります。 このモードでは、ドライバ、ワーカーなどのすべてのサービスは単一のJVM内で実行されます。
しかし、上記の実行方法は、開発とテストの目的でのみ使用されます。つまり、大量のデータを処理することはできません。これは、火花のアプリケーションを実行する他の方法が画像に来る場所です(スタンドアロン、メソ、糸など)。
今すぐthisをお読みください。
これらのモードでは、役割ごとに専用のJVMが用意されています。ドライバは別のJVMとして実行されますが、異なるマシンで実行されている10〜1000秒のエグゼキュータJVMが存在する可能性があります(Crazy right!)。
興味深いのは、単一のJVM内で実行される同じアプリケーションが、1000台のJVM上で実行されるように配布されることです。これらのJVMのライフサイクル、アプリケーションのこのような配布は、Sparkとその基礎となるクラスタフレームワークによって処理されます。