野生の世界の[03]スパークスパークRDD-深度調査

RDDは、彼が抽象的で理解しにくい紙、博士バークレーが提起した概念であり、実際には非常にあいまいな言葉である。しかし、これはスパークの中核概念であり、で、知識のRDDを刺激する必要があります最も簡単な語彙の説明を理解しやすいです。私はRDDが記述するためのシンプルで理解しやすい方法であるかを説明するために学術的言語の単語を使用する必要はありません。

 

 

  まず、RDD、RDDが表示された背景は何ですか

  MapReduceのは、多くの問題を解決するための分散コンピューティングの計算モデルが表示され、しかし理由MRデータ共有ソリューションのあまり効率的で、MRプログラミングモデルをもたらすことは非効率的であり、データは、HDFS、このような安定した外部ストレージシステムに書き込まれデータレプリケーション、ディスクIO、ディスクのシリアライズとデシリアライズ操作を引き起こす可能性があります。RDDが書かれていない、ポリシーを指定することができ、ディスクに書き込むことができません。要約すると、MRとディスクが頻繁に中間結果が無駄に多くの努力をしている途中で、その結果、再利用しない対話します。

  二、RDDコンセプト

  RDD、residenta分散データセット、弾性分散データセット

  1)データセット

   あなたがデータベースに精通している場合は、RDDの症状がちょうどロジックのパフォーマンスから、物理的な構造上のRDDの機能を削除するためにビューに最も類似したデータベース(ビュー)から言えば、彼はデータの集まりです。データセットとは何ですか?これは、リストのJava(登録商標)、又はようにテーブル(またはビュー)のデータベースとして理解することができます。それはテーブルですので、我々は、テーブルの上の操作のいくつかの内部でSQLに似た、実際には、RDDスパークの動作を理解することができます。各RDDは、主に5つの属性があります。

・スライス(パーティション)の基本単位、すなわちデータセット

・各スライスの計算機能

・親RDDへの依存は、この依存性はRDD間の系統を説明します

RDDのキーと値の場合•、パーティション分割

・各パーティションの優先アクセス記憶位置のリスト。ファイルのHDFSは、ブロックの各パーティションの記憶場所が配置されています。

 

  2)弾性

  当初は、私が最も類似したデータベースRDDビューは、なぜそれが代わりにテーブルのビューがあると言いましたか?それは弾力性があるものを、R(弾性)の内側にRDDについて話します、それはそれは、必ずしも物理的に実際に存在しているではありませんRDDデータで、必ずしものみ、データベースビュー(ビュー)のように、に注意を払っていませんあなたは、彼は本当に、クエリの時にデータを計算します。そのようなすべて大文字テーブル名と同じデータでRDD - {S:上海、北京、...}、フォームRDD {S = S1であってもよい:{上海、北京、。 ..}。toUpperCaseの}。物理的な内容に言及した2つの数のセットは、実際には同じではありませんが、同じ二組のを見ることができます。スパークでの内部、我々はオペレーターを呼び出すような操作をtoUpperCaseのに似て。あなたはRを理解するのでオーケー、RDDも最も困難な場所です。

  3)分散型

   私はD(分散)の真ん中にしましょう、これはよく理解され、数台のマシン上で、それぞれ、データのセットですが、限りRDDストアメタ情報データとして(例えば、マシン上のその部分など)にすることができます。前にこのことを理解するのは難しいではない、「忠盛」の答えに「RDD、リストは、パーティションのセット(実際にマッピング特定のデータをブロックするパーティションはHDFSストレージの様々なノード上に分散させることができる)及び変換のセットを含みますまたはオペレータの操作のように。」

  4)フォールトトレラント
 が、この説明は、なぜこれほど多くの問題をRDDする必要があり、何かが欠けているようですか?ここで私は2つの最も明白なハイライトを言います。1、フォールトトレランス:たとえば、あなたは突然、8月のデータ・ストレージ・マシンで、12のマシンに保存された12ヶ月の会社の平均売上高でテーブルを、持っているあなたは、通常は全体の年を選択している、壊れています販売データが出て、その後、グループ分け月は、その後、8月にうまく、良いマシンがあります。8月に保存されたRDDデータは、おそらく(トンから平均(売上高)を選択し 、月= 8)が見つかった8月のデータがなくなっている場合は、必要な適切なタイミングで、そして、あなたは自動的にこのデータでは、生データから回復することができます。(この例では、フォールトトレラントの特性を理解するために特に当てはまりますが、非常に簡単ではありません)。

  5)効率の最適化

  一つの利点は、その最適化効率です。再び、このような状況が存在すると仮定すると、データテーブルが存在し、最初のデータが+1である、-1、+1、-1。明らかに、このようなデータは全て同じであるべきです。あなたがこれを行う場合は毎回データテーブルが計算されているので、我々は、ルックアップ4 O(n)の効率を実行する必要があります。しかし、RDDの考えと、{S '} = {S } + 1-1 + 1-1 => {S'} = {S} + 0、 大幅に効率を向上させることができます。(この同じ例では、精神薄弱ですが、データのサブセットの形を記述するために、データ+ RDD演算子を使用する方法を理解するのに役立つことができます)。

   私はスパークプラットフォームを無視し、すべての説明では、HDFSおよび他のために言って一緒に本当に難しい着用します理解しやすいです。ただ、方言の用語と同じように。スパークの詳細についてはしてもこのようなものを理解するために、HadoopのHDFSの、Scalaの構文の共通RDDを運用メカニズムの組み合わせを必要とします。

ます。https://www.cnblogs.com/licheng/p/6815291.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_34033624/article/details/92630124