糸モードにスパーク。クライアントとクラスタワークフローの2つの動作モード、基本的な概念。スパークワークフロー

 

ディレクトリ

図1において、第1の糸のモデル図を導入

(1)、図の糸モデル。

次のように(2)、糸プロセスです。

クラスタモードでタスク・フローに提出2、

(1)、フローチャートは、以下

以下のように(2)は、動作します:

アプリケーションの終了が実行されているまで3、クライアント・モードでは、ドライバのプロセスは、現在のクライアントで起動します、クライアントのプロセスが存在します。

(1)クライアントモードのフローチャート

以下のように(2)は、動作します:

4、スパークタスクのスケジューリング



図1において、第1の糸のモデル図を導入

(1)、図の糸モデル。

 

次のように(2)、糸プロセスです。

YARN順番に次のステップに分けることができ、プロセスに申請書を提出。

(1)は、クライアントによって、ユーザーへの申請書を提出RM

(2)RM新しいアプリケーションを受け取った後、あなたは最初に、アプリケーション固有のAMを起動するためのコンテナを選択します

リソース(3)AM開始した後、必要がRMを実行するアプリケーションを要求します

(4)RMは、コンテナIDとコンテナのホスト名として表さ、AMコンテナリソースが可能要求された割り当て

所与のコンテナIDとホスト名と(5)のAMに従って、特定のアプリケーションを使用して、ノードマネージャこれらのタスクを開始するため、対応する必要なリソース。

(6)ノードマネージャは、タスク、およびリソースの使用の健康状態を監視するタスクを開始します。

実装(7)は、継続的な監視作業をしています。

タスクの実行が完了すると(8)、AMやRMは、タスクを実行するために、コンテナのキャンセルに報告し、そして自分自身をログアウトします。

 

2、クラスタモデルのタスク・フローの下に提出

(1)、フローチャートは、以下

書き込み絵は、ここで説明しました

以下のように(2)は、動作します:


クラスタ内のノードの後、マスター(のResourceManager)を起動1.、労働者(ノードマネージャ ) プロセス、労働者(ノードマネージャ)プロセスは、それがマスター(のResourceManager)に登録されます、正常に起動しました。
3.クライアント提出作業の後、マスタはワーカーノードは、ドライバ(アプリケーションマスター)プロセスを開始する通知します。(選択労働者がいる限り労働者がするのに十分なリソースを持っているとして、任意である)
ドライバが成功のプロセスを開始した後、成功はマスター登録に戻ります情報は、
executorを開始4.masterワーカープロセスに通知
5.スタートは、エグゼキュータ・プロセスドライバで成功登録後
6.Driver分割ジョブのステージ、及びステージは、さらに分割したタスクエグゼキュータ・プロセスにパイプラインにすべての操作をカプセル化し、それらのタスク実行スレッドに登録に送信
7.すべてのタスクの実行完了後、プログラムが終了します

私たちが知っている、上記の説明を通して:マーテル(このResourceManagerが)クラスタ全体のリソース管理を担当し、現在のノードのリソースを管理する役割を担う労働者(ノードマネージャ)、労働者を作成し、タイミングマスターを知らせるために、現在のCPU、メモリ、およびその他の情報を保存し、エグゼキュータは(ある、最も小さいリソース割り当て単位)プロセス、ドライバ(applicationMaster)ジョブ全体のアプリケーションタスク分割およびタスクと切断と最適化の段階の責任切断を作成する責任があり、そして実行者に対応するワーカーノードに分散されているタスクに責任がありますタスク実行スレッドのプロセス、およびタスクの結果を取得し、SparkContextオブジェクトによる接触とスパーククラスタのドライバー、マスタホストホストを得るには、RPC経由マスターに自身を登録することができます。

マスタースパーククラスタは、クラスタ全体のリソース管理を担当するのResourceManagerの糸、および労働者を作成することです。

ワーカースパーククラスタは、現在のノードのリソース(CPU、メモリ)管理を担当するノードマネージャの糸です。

ドライバーは、ユニークな各アプリケーションの作業です。糸はapplicationMasterです。

各オペレータは、ジョブを実行する必要があります。

それぞれの幅に依存し、ステージを持っています。

エグゼキュータ*コア=タスクの数、パーティションに対応するタスク処理。

3、でクライアントモードの下で、ドライバのプロセスは、現在のクライアントで起動します、アプリケーションが終了するまで、クライアントのプロセスが存在が実行されています。

(1)クライアントモードのフローチャート

書き込み絵は、ここで説明しました

 

以下のように(2)は、動作します:


1.マスターと労働者。クラスタ全体のリソース管理、マスターに自分のCPU、メモリ情報と定期的に報告を監視する責任労働者に責任ワーカー
のクライアントプロセスで2スタートドライバー、および登録済みのマスター
ワーカRPCによって3.master通信、通知作業者が一つ以上のエグゼキュータ・プロセスの開始
ホストと他のノード場合など、自分自身を通知するために、ドライバに4.executor登録プロセスをドライバ情報
ジョブの分割ステージ5.Driver、及びステージはさらに分割した、意志すべての操作は、タスクエグゼキュータでパイプラインにカプセル化し、その登録に送信される
タスクの実行スレッドで処理
アプリケーションの実行が完了した6、ドライバプロセスの終了

 

 

4、スパークタスクのスケジューリング

 

  有向非巡回グラフDAGを形成するために、これらの依存関係のそれぞれの依存関係との間のRDD、DAGステージが形成され、これらの依存関係のDAGSchedulerは、前方に戻ってから、分割された非常に単純なルールを分割狭い顔依存性が追加されこのステージは、ステージ幅依存セグメンテーションを満たすこと。ステージ部門の完成。DAGSchedulerごとのステージタスクセットに生成され、タスクセットはTaskSchedulerに提出しました。特定のタスクのスケジューリングを担当するTaskScheduler、そして最終的にワーカーノード上でタスクを起動します。

公開された159元の記事 ウォン称賛75 ビュー190 000 +

おすすめ

転載: blog.csdn.net/xuehuagongzi000/article/details/103072841