私の質問は馬鹿に聞こえるかもしれませんが、長い間迷惑になります。マスタノードはSparkで実際のタスクを実行しますか?
上に示した画像は、分散スパークアプリケーションのコンポーネントです。この図から、マスターノードは実際のタスクを実行することはなく、クラスタマネージャとしてのみ機能することが示されていると思います。本当ですか?
ちなみに、tasks
は、ここでユーザー提出タスクを指します。
私の質問は馬鹿に聞こえるかもしれませんが、長い間迷惑になります。マスタノードはSparkで実際のタスクを実行しますか?
上に示した画像は、分散スパークアプリケーションのコンポーネントです。この図から、マスターノードは実際のタスクを実行することはなく、クラスタマネージャとしてのみ機能することが示されていると思います。本当ですか?
ちなみに、tasks
は、ここでユーザー提出タスクを指します。
はい、マスターノードはドライバプロセスを実行し、タスクは実行しません。タスクは、ワーカー・ノード上のエグゼキュータ・プロセスで実行されます。マスタノードはCPUの観点からほとんどストレスを受けませんが、ブロードキャスト変数、アキュムレータ、およびcollect
の使用方法によっては、RAM使用量が非常に重いことがあります。
異なる役割をもう少し説明する:
ドライバはコンテキストを作成し、RDD変換およびアクションを使用して、データに対する操作を宣言する。
ドライバは、シリアル化されたRDDグラフをマスタに送信します。マスターはそれからタスクを作成し、実行のためにそれらを従業員に提出します。それは、さまざまなジョブステージを調整します。
作業者は、タスクが実際に実行される場所です。 RDDで要求された操作を実行するために必要なリソースとネットワーク接続が必要です。
はい、該当します。実際、この写真はあまり良くありません。これについては、ここに示すように考えてみることをお勧めします。https://spark.apache.org/docs/latest/img/cluster-overview.png – zero323
その場合、より良い設定マシンをマスターとして使用しますか? – chenzhongpu
一般的にはい。詳細はクラスタ・マネージャと環境に依存しますが、通常は少なくともレプリケートする必要があります。 – zero323