[スパーク]詳細なRDD

RDDの基本概念:

RDD:データを論理的に分割するエラスティック分散データセットは、不変でパーティション化可能であり、並列計算用のコレクションです。次の特性があります。

1)RDDは論理パーティションで構成され、パーティションデータは各ノードに分散され、各パーティションデータは並列で計算できます。

2)「系統」、つまりノードnの障害に基づく高効率のフォールトトレランスは、ノードn-1から回復できます。フォールトトレランスには、広い依存関係と狭い依存関係も必要です。

3)RDDデータのメモリとディスク間の切り替え、データの永続性とメモリまたはディスク。チェックポイントストアの血液関係

4)データシャーディングの柔軟性、必要に応じてパーティションを手動で設定できます

RDDパーティション

1)RDDはクラスターに分散された多くのパーティションに分割され、パーティションの数は並列計算の粒度を決定します。

2)元のファイルはHDFSであり、RDDパーティションの数はブロックに対応します

3)RDDの優先場所:データと計算の関係を検討します。RDDパーティションの優先場所がHDFSブロックの場所である場合、RDDがキャッシュされると、計算はキャッシュが配置されているノードに送信されます

RDDの依存関係

幅依存は、RDD演算の依存関係の一種であり、シャッフル符号が発生するかどうかを判断し、ステージベースを分割します。

依存関係のシャッフル:複数の子RDDパーティションは、結合操作などの親RDDパーティションに依存します。

狭い依存関係:各親RDDパーティションは最大で1つの子RDDパーティションに依存しています。たとえば、マップ操作の場合、親RDDはハッシュ戦略によって分割されています。

協調的な分割の場合、親RDDと子RDDの間の一貫したパーティション配置、つまり同じキーが同じパーティションにマップされ、狭い依存関係を形成します。

 

  狭い依存 広い依存
  通常は同じノードで完了 ネットワークの送信を含む、シャッフル操作を伴う
 

依存関係は線形であるため、ノード障害後の回復はより効率的です。

欠落している親RDDを計算するだけでよく、この計算プロセスは並列にすることができます

ノード障害後の回復には時間がかかり、依存関係は1対多の関係です。

子RDDが失敗すると、親RDDが再計算される可能性があります

 

 

解決された問題:並列反復計算でのデータ共有。

RDD操作:

1)RDDを作成します。外部データまたはコレクションから、他のRDDからの変換

2)変換操作。変換操作は遅延であり、実際の操作は操作が実行されたときにのみトリガーされます。あるRDDから別のRDDに変換する

3)アクション操作。操作の実際の実行をトリガーします。インクルード:foreach操作、RDDをセットまたは変数に変換します。

4)操作を制御します。永続的なRDD。メモリまたはディスクに保存されます。

 

 

 

 

 

公開された61元の記事 ウォンの賞賛2 ビュー7302

おすすめ

転載: blog.csdn.net/hebaojing/article/details/104056288