Spark Standaloneモードでは、マスターノードとワーカーノードがあります。
ここにいくつかの質問があります:
Spark cluster docs を最初に読むことをお勧めしますが、さらに詳しくは Clouderaブログ投稿 これらのモードについて説明しています。
最初の質問は、「インスタンス」の意味によって異なります。ノードはマシンであり、マシンごとに複数のワーカーを実行する正当な理由はありません。したがって、通常、2つのワーカーノードは、それぞれSpark worker。
ワーカーは、多くのアプリケーションのために、多くのエグゼキューターを保持しています。 1つのアプリケーションに多くのワーカーのエグゼキューターがあります。
3番目の質問は明確ではありません。
Sparkスタンドアロンモードでは、マスターノードとワーカーノードがあります。
スタンドアロンモードのマスターとワーカーの両方を1か所で表す場合。
Spark= YARNと連携する方法について知りたい場合は、この投稿を確認してください Spark on YARN
1。 2つのワーカーインスタンスは、2つのワーカープロセスを持つ1つのワーカーノードを意味しますか?
一般に、ワーカーインスタンスをスレーブとして呼び出します実行するプロセスspark tasks/jobs。ノードの推奨マッピング(物理マシンまたは仮想マシン)およびワーカーは、
1 Node = 1 Worker process
2。すべてのワーカーインスタンスは特定のアプリケーション(ストレージ、タスクを管理する)のエグゼキューターを保持していますか、または1つのワーカーノードが1つのエグゼキューターを保持していますか?
はい、ワーカーノードは複数のエグゼキューターを保持できます(プロセス)十分なCPU、メモリ、ストレージがある場合。
指定された画像のWorkerノードを確認してください。
ところで、特定の時点でのワーカーノードのエグゼキューターの数は完全にのワークロードに依存しますclusterおよびノードの能力で、executorの数を実行します。
3。 sparkランタイム?を説明するフローチャートはありますか?
Sparkからプログラムのリソースマネージャーを介して将来の見込みがある場合、join
two rdd
sを実行し、いくつかのreduce
操作を実行してからfilter
こんにちは
これは古い質問であり、ショーンの答えは素晴らしいものでした。私の記事は、MrQuestionのコメントのSPARK_WORKER_INSTANCESに関するものです。 MesosまたはYARNをクラスターマネージャーとして使用すると、1人のワーカーで同じマシン上で複数のエグゼキューターを実行できるため、マシンごとに複数のワーカーを実行する必要はありません。ただし、スタンドアロンクラスターマネージャーを使用する場合、現在のところ、各物理マシンのワーカープロセスごとに実行できるエグゼキューターは1つだけです。したがって、超大型マシンがあり、その上で複数の実行者を実行したい場合は、複数のワーカープロセスを開始する必要があります。それが、spark-env.shのSPARK_WORKER_INSTANCESの目的です。デフォルト値は1です。この設定を使用する場合は、SPARK_WORKER_CORESを明示的に設定して、ワーカーごとのコアを制限してください。すべてのコアを使用します。
このスタンドアロンのクラスターマネージャーの制限はすぐになくなるはずです。これによると SPARK-1706 、この問題は修正され、Spark 1.4。
Lanが言っていたように、複数のワーカーインスタンスの使用は、スタンドアロンモードでのみ関連します。複数のインスタンスが必要な理由は2つあります。(1)ガベージポーズコレクターが大きなJVMのスループットを低下させる可能性がある(2)32 GBを超えるヒープサイズではCompressedOoopsを使用できない
複数のワーカーインスタンスの設定方法 の詳細をご覧ください。