2016-07-30 7 views
0

私の質問は馬鹿に聞こえるかもしれませんが、長い間迷惑になります。マスタノードはSparkで実際のタスクを実行しますか?

enter image description here

上に示した画像は、分散スパークアプリケーションのコンポーネントです。この図から、マスターノードは実際のタスクを実行することはなく、クラスタマネージャとしてのみ機能することが示されていると思います。本当ですか?

ちなみに、tasksは、ここでユーザー提出タスクを指します。

+0

はい、該当します。実際、この写真はあまり良くありません。これについては、ここに示すように考えてみることをお勧めします。https://spark.apache.org/docs/latest/img/cluster-overview.png – zero323

+0

その場合、より良い設定マシンをマスターとして使用しますか? – chenzhongpu

+0

一般的にはい。詳細はクラスタ・マネージャと環境に依存しますが、通常は少なくともレプリケートする必要があります。 – zero323

答えて

2

はい、マスターノードはドライバプロセスを実行し、タスクは実行しません。タスクは、ワーカー・ノード上のエグゼキュータ・プロセスで実行されます。マスタノードはCPUの観点からほとんどストレスを受けませんが、ブロードキャスト変数、アキュムレータ、およびcollectの使用方法によっては、RAM使用量が非常に重いことがあります。

0

異なる役割をもう少し説明する:

ドライバはコンテキストを作成し、RDD変換およびアクションを使用して、データに対する操作を宣言する。

ドライバは、シリアル化されたRDDグラフをマスタに送信します。マスターはそれからタスクを作成し、実行のためにそれらを従業員に提出します。それは、さまざまなジョブステージを調整します。

作業者は、タスクが実際に実行される場所です。 RDDで要求された操作を実行するために必要なリソースとネットワーク接続が必要です。

関連する問題