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。メモリまたはディスクに保存されます。