2016-07-12 6 views
1

私はスパークするのが初めてで、一般的な質問があります。すべてのファイルが処理されるすべてのワーカーノードで利用可能でなければなりません。ドライバーはパーティションを制御しますが、ドライバーはどのパーティションをどのように読み取るように指示しますか?Apache Sparkでのデータ配信

答えて

0

各RDDは複数のパーティションに分割されています。各パーティションを計算するために、Sparkはタスクを生成してワーカーノードに割り当てます。ドライバが作業者に作業を送信すると、その作業のPartitionIDも指定されます。

作業者は、RDDのイテレーターをInputRDDまで連鎖させ、PartitionIDを渡してタスクを実行します。 InputRDDは、指定されたパーティションIDに対応する入力のどの部分を決定し、データを返します。

rddIter.next -> parentRDDIter.next -> grandParentRDDIter.next -> ... -> InputRDDIter.next 
0

スパークは、近くにあるノードからRDDにデータを読み込もうとします。 Sparkは通常、分散パーティション化データにアクセスするため、変換操作を最適化するために、データチャンクを保持するパーティションを作成します。

enter image description here

https://github.com/jaceklaskowski/mastering-apache-spark-book

+0

あなたは労働者が最初にすべてのパーティションを取得し、それらを処理することを意味しますか? – saeed

関連する問題