web-dev-qa-db-ja.com

Sparkドライバーメモリとアプリケーションマスターメモリ

クライアントモードのドキュメントを正しく理解していますか?

  1. クライアントモードは、ドライバーがアプリケーションマスター内で実行されるクラスターモードとは対照的ですか?
  2. クライアントモードでは、ドライバーとアプリケーションマスターは別個のプロセスであるため、spark.driver.memory + spark.yarn.am.memoryはマシンのメモリより小さくなければなりませんか?
  3. クライアントモードで、ドライバーのメモリがアプリケーションのマスターメモリ設定に含まれていませんか?
13
user782220

クライアントモードは、ドライバーがアプリケーションマスター内で実行されるクラスターモードとは対照的ですか?

はい、SparkアプリケーションがYARNにデプロイされた場合

  • クライアントモード、アプリケーションが送信されたマシンでドライバーが実行されますアプリケーションが完了するまで、マシンはネットワークで使用可能でなければなりません。
  • クラスターモード、ドライバーはアプリケーションマスターで実行されます(sparkアプリケーション)ノードごとに1つ)、アプリケーションがアプリケーションを提出する必要があります提出後にネットワークに参加しない

クライアントモード

Client mode

クラスターモード

Cluster mode

Sparkアプリケーションが独自のリソースマネージャー(スタンドアロン)でクラスターモードを使用して送信された場合)、ドライバープロセスはワーカーノードの1つにあります。

画像とコンテンツの参照:

クライアントモードでは、ドライバーとアプリケーションマスターは別個のプロセスであるため、spark.driver.memory + spark.yarn.am.memoryはマシンのメモリより小さくなければなりませんか?

いいえクライアントモード、ドライバーとAMは個別のプロセスであり、別のマシンに存在するため、メモリを結合する必要はありませんが、spark.yarn.am.memory + some overheadはYARNコンテナーメモリ(yarn.nodemanager.resource.memory-mb)。 YARNのResource Managerを超えると、コンテナーが強制終了されます。

クライアントモードで、ドライバーのメモリがアプリケーションのマスターメモリ設定に含まれていませんか?

ここに spark.driver.memoryは、sparkアプリケーションが起動する場所であるマシンで使用可能なメモリよりも少ない必要があります。

ただし、クラスターモードではspark.driver.memory の代わりに spark.yarn.am.memory

spark.yarn.am.memory:512m(デフォルト)

クライアントモードでYARNアプリケーションマスターに使用するメモリの量。JVMメモリ文字列と同じ形式(例:512m, 2g)。クラスタモードでは、spark.driver.memory代わりに。小文字のサフィックスを使用してください。 k, m, g, tp、それぞれキビ、メビ、ギビ、テビ、ペビバイト。

チェック ここでこれらのプロパティの詳細

10
mrsrinivas

クライアントモードでは、ドライバーは、spark-submit、つまりクライアントプログラム内で直接起動されます。クラスター内のいずれかのノードに作成されるアプリケーションマスター。 spark.driver.memory(+メモリオーバーヘッド)は、マシンのメモリより少なくなります。

クラスターモードでは、クラスター内の任意のノードのアプリケーションマスター内でドライバーが実行されています。

https://blog.cloudera.com/blog/2014/05/Apache-spark-resource-management-and-yarn-app-models/

3
Ravikumar