2016-06-28 5 views
1

sparkはどのようにデータを労働者に配布していますか?スパーク - どのようにノードの周りにデータを配布しますか?

ワーカーはデータソースから読み取ったのですか、それともドライバがそれを読み取りワーカーに送信しますか?そして、ある従業員が他の従業員のデータを必要とするとき、彼らは直接コミュニケーションをしますか?

ありがとうございます!

答えて

1

SparkContext.textFileのような分散入力メソッドを使用すると、ワーカーはデータソースから直接読み込みます(または、ワーカータスクコード内からHDFSファイルを明示的に開くと、もちろんワーカーにも発生します)。

メインドライバプログラムで手動でデータを読み取ってからSparkContext.parallelizeを使用した場合、ドライバは実際にデータをワーカーに送信します。

従業員から従業員へのデータ依存関係は、一般的にshuffleと呼ばれます。このタイプのワーカーとワーカー間のコミュニケーションは、大部分の大規模データ処理システムの中心であり、効率的かつ確実に行うのは難しいからです。概念的には、「直接的に通信する」として多かれ少なかれそれを扱うことができますが、データ依存性がどのように取られているかによっては、より多くのことが起こることがあります。

+0

デニス、非常に参考になりました。あなたはその科目についての読書勧告をお持ちですか?ありがとう。 –

+0

"https://cwiki.apache.org/confluence/display/SPARK/Spark+Internals"からスタートしてください。 – rakesh

+0

ねえ、ありがとう! –

関連する問題