Cluster Mode Overview

このドキュメントでは、関連するコンポーネントを理解しやすくするために、Sparkがクラスター上でどのように動作するかの簡単な概 アプリケーション提出ガイドを読むクラスター上でのアプリケーションの起動について学びます。

Sparkアプリケーションは、メインプログラム(ドライバープログラムと呼ばれる)のSparkContextオブジェクトによって調整された、クラスター上の独立したプロセスセ

具体的には、クラスター上で実行するために、SparkContextは複数のタイプのクラスターマネージャー(Spark独自のスタンドアロンのクラスターマネージャー、MesosまたはYARN)に接続できます。 接続されると、Sparkはクラスター内のノード上のエグゼキューターを取得します。次に、アプリケーションコード(SparkContextに渡されるJARファイルまたはPythonファイルによって定義される)を実行者に送信します。 最後に、SparkContextは実行するためにタスクをエグゼキューターに送信します。

このアーキテクチャについては、いくつかの有用な点に注意してくださ:

  1. 各アプリケーションは独自のexecutorプロセスを取得し、アプリケーション全体の持続時間を維持し、複数のスレッドでタスクを実行します。 これには、スケジューリング側(各ドライバが独自のタスクをスケジュールする)とexecutorside(異なるアプリケーションのタスクが異なるJvmで実行される)の両方で、 ただし、外部ストレージシステムに書き込むことなく、異なるSparkアプリケーション(SparkContextのインスタンス)間でデータを共有することはできません。
  2. Sparkは、基盤となるクラスターマネージャーに依存しません。 Executorprocessesを取得し、これらが相互に通信できる限り、他のアプリケーション(Mesos/YARNなど)もサポートするacluster managerでも比較的簡単に実行できます。
  3. ドライバプログラムは、そのエグゼキュータからの着信接続をリッスンして受け入れる必要があります(例えば、sparkを参照してください。ドライバー。ネットワーク構成内のポート)。 そのため、ドライバプログラムはワーカーノードからnetworkaddressableである必要があります。
  4. ドライバーはクラスター上のタスクをスケジュールするため、workernodesの近く、好ましくは同じローカルエリアネットワーク上で実行する必要があります。 要求をクラスターにリモートで送信したい場合は、ワーカーノードから遠く離れたドライバーを実行するよりも、ドライバーにRPCを開き、近くからoperationsfromを送信する方が良

クラスターマネージャの種類

システムは現在、いくつかのクラスターマネージャをサポートしています:

  • Standalone–sparkに含まれるシンプルなクラスターマネージャで、クラスターを簡単に設定できます。
  • Apache Mesos–Hadoop Mapreduceとサービスアプリケーションを実行することもできる一般的なクラスターマネージャ。
  • Hadoop YARN–Hadoop2のリソースマネージャー。
  • Kubernetes–コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するためのオープンソースのシステム。

クラスターマネージャーとしてnomadのサポートを追加するためのサードパーティのプロジェクト(Sparkプロジェクトではサポートされていません)が存在します。

アプリケーションの送信

アプリケーションは、spark-submitスクリプトを使用して任意のタイプのクラスターに送信できます。アプリケーション提出ガイドでは、これを行う方法について説明します。

監視

各ドライバプログラムには、通常はポート4040上のweb UIがあり、runningtasks、executor、およびストレージ使用状況に関する情報を表示します。 Webブラウザでに移動するだけで、このUIにアクセスできます。 監視ガイドでは、他の監視オプションについても説明します。

ジョブスケジューリング

Sparkは、アプリケーション間(clustermanagerのレベル)とアプリケーション内(同じSparkContextで複数の計算が行われている場合)の両方でリソース割ジョブスケジューリングの概要では、これをより詳細に説明しています。

用語集

次の表は、クラスターの概念を参照するために使用される用語をまとめたものです:

用語 意味
アプリケーション Spark上に構築されたユーザープログラム。 クラスター上のドライバプログラムとエグゼキュータで構成されます。
アプリケーションjar ユーザーのSparkアプリケーションを含むjar。 場合によっては、ユーザーはアプリケーションとその依存関係を含む”uber jar”を作成したいと思うでしょう。 ユーザーのjarにHadoopまたはSparkライブラリを含めるべきではありませんが、これらは実行時に追加されます。
ドライバプログラム アプリケーションのmain()関数を実行し、SparkContextを作成するプロセス
Cluster manager クラスター上のリソースを取得するための外部サービス(standalone manager、Mesos、YARNなど))
展開モード は、ドライバプロセスが実行される場所を区別します。 “クラスター”モードでは、フレームワークはクラスター内でドライバーを起動します。 “クライアント”モードでは、送信者はクラスターの外部でドライバを起動します。
ワーカーノード クラスター内でアプリケーションコードを実行できる任意のノード
Executor タスクを実行し、それらの間でメモリまたはディスクストレージにデータを保持する、ワーカーノード上のアプリケーション用に起動されたプロセス。 各アプリケーションには独自のエグゼキュータがあります。
タスク 1人のエグゼキュータに送信される作業単位
Job Sparkアクションに応答して生成される複数のタスクからなる並列計算(例:savecollect); ドライバーのログにこの用語が使用されています。
Stage 各ジョブは、互いに依存するステージと呼ばれる小さなタスクセットに分割されます(MapReduceのmapステージとreduceステージと同様)。

コメントを残す

メールアドレスが公開されることはありません。

Previous post はい、任天堂Romをダウンロードすることは違法です(ゲームを所有してい)
Next post 女性と性的な会話をする方法