多段分割境界を分割する依存(幅依存性)をシャッフルするタスクをスパーク。最終結果段がResultStage呼ばれ、他の相がShuffleMapStage呼ばれます。
- 前向き推論1.は、広い依存関係が切断されている遭遇、狭い顔は、この依存性はステージRDDに添加して置きます
- ステージ2.最後の決定RDDステージ別パーティションの数であり、各タスクの数。
- 3.タスクタイプ内部の最後のステージは、タスクのステージの他のすべてのタイプの前に、ResultTaskあるShuffleMapTaskです。
- ステージ4は、現在の操作者がステージの計算の最後のステップでなければならない表します
計算の原則
いくつかの概念をスパーク:
ドライバ
:ドライバように、このようなハイブとして、多くのこの概念の分散フレームワークを使用して。main()関数のアプリケーションを実行しているドライバに火花とSparkContextを作成し、SparkContextの目的を作成するには、オペレーティング環境スパークアプリケーションを調製することです。責任SparkContext ClusterManagerのが通信スパークでは、その上のリソース、割り当ておよび監視タスクとを適用します。操作のエグゼキュータの一部が完了すると、ドライバもSparkContextがクローズする責任があります。通常、ドライバーSparkContextの代わりに。
エグゼキュータ
:ワーカーノードでプロセスを実行するアプリケーションは、いくつかのタスクを実行するための責任プロセス、およびデータの責任であるが、メモリまたはディスク上のアプリケーション実行プログラムの独自の別個のグループとそれぞれ存在します。タスクtaskRunnerへのパッケージングを担当し、タスクを実行するためのスレッドプールからアイドルスレッドを抽出糸モードのスパークで。
ワーカー
:クラスタ内の任意のノードは、アプリケーションコードを実行することができます。途中で作業者が糸モードにスパークの途中に、スレーブによってスタンドアロンモード設定ファイルノードであることノードマネージャノードです。
タスク
:エグゼキュータの作業ユニットに送られ、MapTaskとReduceTaskのHadoopのMapReduceにおける概念は、アプリケーションの動作の基本単位であり、単一のデータ・パーティション上の最小処理単位を表します。2つのカテゴリに分類され、タスクShuffleMapTaskとResultTask。タスク分割(ArrayBuffer)にShuffleMapTaskタスクと出力ResultTaskタスク、及び出力タスク(に対応するタスク・ベースのデータ・パーティション)に運転者バケットを複数送ります。タスクステージの複数で構成され、タスクのスケジューリングと管理は、以下のTaskSchedulerに責任があります。
タスクセットは
:グループを代表してタスク設定シャッフルタスクの依存関係の組成物と関連していません。もっと根本的なTaskScheduler管理に提出するタスクのセット。
ステージ
:ジョブが決定された後、計算ステップに基づいてスパークスケジューラ(DAGScheduler)は、ステージを複数のジョブまたはジョブを算出します。ステージはShuffleMapStageとResultStageに分割され、各ステージは、タスクセットが含まれます。
仕事
:それはアクション(行動)に来る本当のコンピューティングをトリガするために中性子をカウントした場合にのみスパークが行わ怠惰な演算処理です。ジョブがステージの1つ以上を含むオペレータコンピューティングジョブの操作によって生成されます。
Managerクラスタ
:外部サービスのクラスタ上のリソースへのアクセスを意味し、3つのタイプがあります。
スタンドアロン:マスターによってリソースの割り当てを担当し、ネイティブリソースの管理をスパーク。
ApacheのMesos:良いフレームとリソーススケジューリングのHadoopのMapReduceの互換性。
Hadoopの糸:糸は主のResourceManagerを指します。
DAGScheduler
:DAGのステージ上に構築されたジョブによると、ステージTaskSchedulerに提出。分割されたステージは、次にタスクセットの形でステージTaskSchedulerに提出RDDとステージとの間の関係に基づいて、最小のオーバーヘッドスケジューリング方法を見つけるために、RDD間の依存関係に基づいています。また、DAGSchedulerはまた、実行(処理されたTaskSchedulerの故障による非シャッフルタスクデータの損失)の前にステージを再提出する必要があるかもしれませんシャッフルによるデータの損失に失敗に対処します。
TaskScheduler
:タスクセットは、各タスクエグゼキュータがここに割り当てられているが何を実行走るワーカー(クラスタ)に提出されます。TaskSchedulerはまた、すべてのタスクの再試行の動作状態は、タスクを失敗した維持します