通常,当一个传递到Spark操作(例如map或reduce)的函数,在一个远程集群节点上执行时,它是工作在各个函数里用到的所有变量的副本。这些变量被复制到每台机器,且不会更新变量到远程机器,然后传播到驱动程序。通常支持跨越任务的读写共享的变量是没有效率的。然而,对于两个常用的模式,Spark提供了两个有限的共享变量的方式:广播变量(broadcast variables)和累加器(accumulators)。