Spark Broadcast源代码分析
1. Broadcast 简介 Broadcast广播变量是只读变量,它会将数据缓存在每个节点上,而不是每个Task去获取它的复制副本。这样可以降低计算过程中的网络开销。 broadcast的基本使用包括创建和读取。 创建 scala > val broadcastVar = sc . broadcast ( Array ( 1 , 2 , 3 ) ) broadcastVar : org . apache . spark . broadcast . Broadcast [ Array [ Int ] ] = Broadcast ( 0 ) 读取 scala > broadcastVar . value res0 : Array [ Int ] = Array ( 1 , 2 , 3 ) 2. BroadcastManager的初始化 BroadcastManager是用来管理Broadcast ,该实例对象是在SparkEnv.scala的create方法时候创建的。 private def create ( conf : SparkConf , executorId : String , bindAddress : String , advertiseAddress : String , port : Option [ Int ] , isLocal : Boolean ,