TL;DR: Spark Standalone クラスターでは、クライアント デプロイ モードとクラスター デプロイ モードの違いは何ですか? アプリケーションを実行するモードを設定するにはどうすればよいですか?
3 台のマシンを含む Spark スタンドアロン クラスターがあり、そのすべてに Spark 1.6.1 がインストールされています。
- マスター マシン。アプリケーションを実行する場所でもあります。
spark-submit
- 2 台の同一のワーカー マシン
Spark Documentationから、次を読みました。
(...) スタンドアロン クラスターの場合、Spark は現在 2 つのデプロイ モードをサポートしています。クライアント モードでは、ドライバーは、アプリケーションを送信するクライアントと同じプロセスで起動されます。ただし、クラスター モードでは、ドライバーはクラスター内のワーカー プロセスの 1 つから起動され、クライアント プロセスは、アプリケーションの終了を待たずに、アプリケーションを送信する責任を果たすとすぐに終了します。
ただし、これを読んでも実際の違いはよくわかりません。また、さまざまな展開モードの長所と短所がわかりません。
さらに、start-submit を使用してアプリケーションを起動すると、プロパティspark.submit.deployMode
を「cluster」に設定しても、コンテキストの Spark UI に次のエントリが表示されます。
したがって、実際の違いを確認するために両方のモードをテストすることはできません。そうは言っても、私の質問は次のとおりです。
1) Spark スタンドアロンクライアントデプロイ モードとクラスターデプロイ モードの実際的な違いは何ですか? それぞれを使用することの長所と短所は何ですか?
2) を使用して、アプリケーションを実行するものを選択するにはどうすればよいspark-submit
ですか?