2016-04-11 12 views
0

Sparkでは、アプリケーションが開始されると、アプリケーションのデータセットを含むRDD(WordCount用の単語データセットなど)が作成されます。RDDとApache Sparkのパーティション

これまでのところ私が理解RDD(例えばマップ、reduceByKeyは、等...)

しかし、私の知る限りで、スパークこれらのデータセットに行われているWORDCOUNTでそれらの単語や操作のコレクションがあるということですHDFSからすべてのエグゼキュータによって読み込まれるHadoopPartition(または一般的にはパーティション)もあります。また、ドライバのRDDにはこれらのパーティションがすべて含まれていると思います。

Sparkのエグゼキュータには何が分かれていますか?すべてのエグゼキュータは、これらのサブデータセットをドライバ内のRDDに比べて少ないデータを含む単一のRDDとして取得するか、すべてのエグゼキュータはこれらのパーティションのみを処理してHDFSから直接読み込みますか?また、パーティションはいつ作成されますか? RDD作成について

答えて

0

パーティションは、RDDがキー値ベースであれば構成可能です。同じパーティション内の

  1. タプルが同じ マシンであることが保証されてい

    は、主に3つのパーティションのプロパティがあります。

  2. クラスタ内の各ノードには、複数のパーティションを含めることができます。
  3. パーティションの総数は設定可能です。デフォルトでは、すべてのエグゼキュータ・ノード上のコアの総数には が設定されています。

スパークは、パーティショニングの2種類をサポートしています。火花がHDFSからファイルを読み取ると

  1. ハッシュ・パーティション化
  2. レンジ・パーティション

は、それが単一入力分割のための単一のパーティションを作成します。入力分割は、このファイルの読み込みに使用されるHadoop InputFormatによって設定されます。 rdd.repartition(x)を呼び出すと、rddから望むx個のパーティションにあるN個のパーティションからのデータのシャッフルが実行されます。パーティショニングはラウンドロビン単位で行われます。

詳細はこちらherehere

関連する問題