2017-02-18 22 views
2

私はスパークが新しく、シングルトンラッパーを使用してブロードキャストvarを使用する利点は何かを理解しようとしています。 Sparkは、通信コストを削減するために、効率的なブロードキャストアルゴリズムを使用してブロードキャスト変数を配信しようとしていますが、これは長いリビングアプリケーションでは一度発生すると想定します。スパーク放送とシングルトンラッパー

各タスクはシングルトンのコピーを保持するか、または実行者自身だけを保持しますか?

私はそれがシングルトンとどのように機能し、それを放送と比較するかを理解しようとしています。

この質問が繰り返される場合は、回答が見つからないのでお知らせください。

答えて

0

それぞれのタスクはシングルトンのコピーを保持するか、または実行者自身だけを保持しますか?

各ワーカーは、ブロードキャスト変数のキャッシュされたコピーを1つ保持します。ブロードキャスト変数にアクセスする必要があるすべてのタスクは、そのワーカーに存在する同じコピーを参照します。はい、ライフサイクルがBroadcastManagerContextCleanerで管理されているため、JVMレベルのシングルトンではなく、各ワーカーで1つのコピーです。

この本はここでそれを華麗に説明していますhttps://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-broadcast.htmlその図にその輪郭がどのように描かれているかをご覧ください。