为什么Spark中的累加器仅对工人任务进行写操作?

时间:2018-09-20 17:05:23

标签: apache-spark bigdata spark-streaming accumulator

根据蓄电池的文档:

  

请注意,工作节点上的任务无法访问累加器的value()-从这些任务的角度来看,累加器是只写变量。

为什么火花为蓄电池提供了这种特性?

1 个答案:

答案 0 :(得分:0)

累加器不是线程安全的。任务完成后,在单个线程上执行更新累加器值的DAG调度程序。因此,如果工作程序节点具有访问(读取)累加器的值,则读取值可能不一致。这就是为什么我认为它是按这种方式设计的。