79

Spark スタンドアロン モードには、マスター ノードとワーカー ノードがあります。

ここにいくつかの質問があります:

  1. 2 つのワーカー インスタンスは、2 つのワーカー プロセスを持つ 1 つのワーカー ノードを意味しますか?
  2. すべてのワーカー インスタンスが特定のアプリケーション (ストレージ、タスクを管理する) のエグゼキューターを保持していますか、それとも 1 つのワーカー ノードが 1 つのエグゼキューターを保持していますか?
  3. ワードカウントなど、実行時にスパークがどのように機能するかを説明するフローチャートはありますか?
4

4 に答える 4

60

最初にSpark クラスターのドキュメントを読むことをお勧めしますが、これらのモードについて説明しているこのCloudera のブログ記事を読むことをお勧めします。

最初の質問は、「インスタンス」の意味によって異なります。ノードはマシンであり、マシンごとに複数のワーカーを実行する正当な理由はありません。したがって、2 つのワーカー ノードは通常、それぞれが Spark ワーカーである 2 つのマシンを意味します。

ワーカーは、多くのアプリケーションに対して多くのエグゼキュータを保持します。1 つのアプリケーションには、多くのワーカーのエグゼキュータがあります。

3 番目の質問は明確ではありません。

于 2014-07-11T13:53:36.457 に答える
56

他の素晴らしい答えにまで広げて、いくつかの画像で説明したいと思います。

Spark スタンドアロン モードには、マスター ノードとワーカー ノードがあります。

スタンドアロン モードの 1 つの場所でマスターとワーカーの両方を表す場合 (CPU とメモリが利用可能な場合、各ワーカーは複数のエグゼキューターを持つことができます)。

Spark スタンドアロン モード

Spark が YARN とどのように連携するかに興味がある場合は? この投稿を確認してくださいYARNのSpark

1. 2 つのワーカー インスタンスは、2 つのワーカー プロセスを持つ 1 つのワーカー ノードを意味しますか?

一般に、worker インスタンスはspark タスク/ジョブを実行するプロセスであるため、スレーブと呼びます。ノード (物理マシンまたは仮想マシン) とワーカーの推奨されるマッピングは、次のとおりです。

1 Node = 1 Worker process

2. すべてのワーカー インスタンスが特定のアプリケーション (ストレージ、タスクを管理する) のエグゼキューターを保持していますか、それとも 1 つのワーカー ノードが 1 つのエグゼキューターを保持していますか?

はい。十分な CPU、メモリ、およびストレージがあれば、ワーカー ノードは複数のエグゼキューター(プロセス)を保持できます。

指定されたイメージのワーカー ノードを確認します。 クラスター内のワーカー ノード

ところで、特定の時点でのワーカー ノード内のエグゼキューターの数は、クラスターのワークロードと、エグゼキューターの数を実行するノードの機能に完全に依存します。

3. スパーク ランタイムの方法を説明するフローチャートはありますか?

プログラムの任意のリソース マネージャーで Spark の観点から実行を見ると、join2 つrddの s と何らかのreduce操作が行われます。filter

サンプル コードの Spark ランタイム

ハイ

于 2017-12-07T07:07:58.420 に答える
8

Lan が言ったように、複数のワーカー インスタンスの使用は、スタンドアロン モードでのみ関連します。複数のインスタンスが必要な理由は 2 つあります。(1) ガベージ ポーズ コレクターが大規模な JVM のスループットを損なう可能性がある (2) ヒープ サイズが 32 GB を超えると CompressedOoops を使用できない

複数のワーカー インスタンスを設定する方法について詳しくは、こちらをご覧ください。

于 2015-06-05T08:47:15.070 に答える