火花DAG、幅依存性、ステージ、シャッフル

スパーク-DAG図。

    DAG(有向非巡回グラフ)と呼ばれる有向非巡回グラフRDD DAG間の依存関係に応じて、DAGの間のRDDの依存関係が形成されるRDDへの変換元の系列は、DAG形成されます別のステージに分け。

幅依存性

    狭い依存性:親と子RDD RDDパーティション間の関係は一から一です。あるいは、親パーティションは、サブパーティションが多数対RDDである場合にのみ、RDDとRDD親子関係RDDパーティションに対応しています。何シャッフル生成はありません。RDD親パーティションは、に行くサブRDDのパーティション

    幅依存関係:親と子RDD RDDパーティション対多の関係。世代がシャッフルされます。親データパーティションRDDは、サブRDD内部の異なるパーティションにアクセスしてください。

ステージ

    RDD間の依存関係のスパークタスクは、DAG、DAGはDAGSchedulerに提出された有向非循環グラフを形成し、DAGScheduler DAGが複数の相互依存段階に分割され、ステージ分割では、RDDの間の幅に依存します。

   分割ステージに広い信頼に遭遇し、各ステージは、1つまたは複数のタスクのタスクを含みます。次いで、これらは、タスクセットの形でタスクTaskSchedulerの実行に提出されます。ステージは並列タスクのセットで構成されています。

ステージ切断ルール

   ルール切削:背面から、顔の幅は、切削ステージに依存します。

   舞台类别:ResultStage(減らす)、ShuffleMapStage(マップ)

シャッフル

    シャッフルは、タスクは、このプロセスに入っ減らすためにマップタスクから出力されたデータを記述する。地図の間のブリッジとしてシャッフルして削減し、地図にはこのリンクを利用するには、出力を下げシャッフルしなければならない、シャッフルのパフォーマンスは、直接、プログラム全体のパフォーマンスとスループットに影響します。分散型の場合には、ノード間でタスクを軽減するので、他のノードにマップタスクの結果を引っ張っする必要があります。このプロセスは、ネットワークリソースの消費量やメモリ、ディスクIOの消費量が生成されます。シャッフルは、通常2つの部分に分かれ:地図データの準備段階とステージは、プロセスデータコピーを削減します。

    プロデュースシャッフル演算子:

    1.重複排除

DEF異なる()
DEF異なる(numPartitions:INT)

    2.重合

コードをコピー
DEF reduceByKey(FUNC:(V、V)=> V、numPartitions:INT):RDD [(K、V)] 
reduceByKey DEF(パーティショナ:パーティション分割、FUNC:(V、V)=> V):RDD [(K 、V)] 
DEF GROUPBY [K](F:T => K、P:パーティショナ):RDD [(K、反復処理可能[V])] 
DEF groupByKey(パーティ:パーティション分割):RDD [(K、反復処理可能[V] )] 
DEF aggregateByKey [U:ClassTag(zeroValue:U、パーティショナ:パーティショナ):RDD [(K、U)] 
ClassTag(zeroValue:U、numPartitions:INT):RDD [(K、U aggregateByKey [U DEF )] 
DEF combineByKey [C](createCombiner:V => C、mergeValue:(C、V)=> C、mergeCombiners:(C、C)=> RDD [(K、C)]:C) combineByKey DEF [C (createCombiner:V => C、mergeValue:(C、V)=> C、mergeCombiners:(C、C)=> C、numPartitions:INT):RDD [(K、C)] DEF combineByKey [C](createCombiner:V => C、mergeValue:(C、V)=> C、mergeCombiners:(C、C)=> C、パーティショナ:パーティション分割、mapSideCombine:ブール= 真、シリアライザ:シリアライザ= NULL ):RDD [(K、C)]

    3.ソート

DEF sortByKey(昇順:ブール= 真、numPartitionsます。int = self.partitions.length):RDD [(K、V)] 
SORTBY [K](F DEF:(T)=> K、昇順:ブール= 真、numPartitions :のInt = this.partitions.length)(暗黙ORD:注文[K]、CTAG:ClassTag [K]):RDD [T]

    4.再パーティション化

DEF合体(numPartitions:INT、シャッフル:ブール= 偽、partitionCoalescer:オプション[PartitionCoalescer] = Option.empty)
デフ配分(numPartitions:INT)(暗黙ORD:注文[T] = NULL)

    操作セットまたはテーブル

コードをコピー
DEF INTERSECTION(その他:EET [T]):EET [T] 
DEF INTERSECTION(その他:EET [T]、パーティショナ:パーティショナ)(暗黙ORD:注文[T] = NULL ):EET [T] 
DEF INTERSECTION(その他: EET [T]、numPartitions:INT):EET [T]が
DEF減算(その他:EET [T]、numPartitions:INT):EET [T]が
DEF減算(その他:EET [T]、P:パーティショナ)(暗黙ORD :[T] =注文ヌル):EET [T]  subtractByKey DEF [W:ClassTag](その他:EETの[(K、W)]):EETの[(K、V)]  subtractByKey DEF [W:ClassTag](他の:EETの[(K、W)]、numPartitions:INT):EETの[(K、V)]  subtractByKey [W:ClassTag] DEF(他:EETの[(K、W)]、P:パーティショナ):EETの[( Kは、V)]  DEF参加[W](その他:EETの[(K、W)]、パーティショナ:パーティ):EETの[(K、(V、W))] RDD [(K、(V、W))]:DEF [W](:RDD [(K、W)他)に参加 RDD [(K、W)]、numPartitions:のInt DEF [W](他の参加):RDD [(K、(V、W))]  DEF leftOuterJoin [W](その他:RDD [(K、W)]):RDD [(K、(V、オプション[W]))]

 

 

おすすめ

転載: www.cnblogs.com/tansuiqing/p/11360098.html