このブログを検索

2015/03/18

Spark’s Shared Variables

MRベースではMR起動時に変数定義と値を設定してするが、Sparkでは共有変数機能を提供してある。

Broadcast Variables:

  •  読み取り専用の値を全体に拡散させて他のノードから参照出来る。
  • SparkContext.broadcast(v)で生成。


Accumulators:

  • 追加(added)のみ可能は変数で MRのCounterまたはSumとして利用できる。
  • SparkContext.accumulator(v)で生成出来る。
  • 各ノードではaddまたは+=のオペレーターで足し算ができる。
  • AccumulatorParamのサブクラスとして独自の型を生成出来る。
  • この変数のupdateはActions(reduce, collect, countなど)の処理の中でのみ実行される。Sparkは各Taskで1回のみ実行されることを保証する。

programming-guide