- 博客(15)
- 收藏
- 关注
原创 sparkEnv——spark的执行环境
sparkEnv——spark的执行环境securityManager主要对帐号、权限以及身份认证进行设置和管理rpcEnvRpcEndpoint 的运行环境,管理 RpcEndpoint 的整个生命周期SerializerManager为spark提供序列化、压缩和加密的管理器BroadcastManager负责Broadcast的创建和销毁...
2019-11-18 22:32:42 259
原创 Dispatcher
Dispatcher 分发器Dispatcher在spark中的任务主要是,在rpcenv中注册或注销rpcendpoint,分发message到rpcendpoint中。代码清单endpoints存放的是Endpoint的名字与EndpointData的映射endpointRefs存放的是Endpoint与RpcEndpointRef的映射receivers是存放消息收件人的列表 ...
2019-11-11 17:04:52 236
原创 UnifiedMemoryManager
UnifiedMemoryManager 动态存储管理器UnifiedMemoryManager 动态存储管理器是MemoryManager存储管理器的子类它动态的管理执行内存和存储内存的大小,以便执行内存和存储内存可以在自身内存不够使用时占用对方的内存先获取执行内存和存储内存的占用内存maxMemory大小,并默认执行内存和存储内存各占总内存的50%,不过可以通过配置参数spark.me...
2019-11-04 17:17:15 177
原创 StaticMemoryManager
StaticMemoryManager 静态存储管理器StaticMemoryManager 静态存储管理器是MemoryManager存储管理器的子类,它初始化时就为存储空间、UnrollMemory和执行空间划分了大小后便不在变化。代码清单堆内的存储空间,大小为onHeapStorageMemory=systemMaxMemory * memoryFraction * safety...
2019-11-03 16:51:32 144
原创 MemoryManager
静态存储管理器代码清单为堆内外的存储和执行创建内存池 @GuardedBy("this") protected val onHeapStorageMemoryPool = new StorageMemoryPool(this, MemoryMode.ON_HEAP) @GuardedBy("this") protected val offHeapStorageMemoryPoo...
2019-11-03 15:33:07 728
原创 MapOutputTrackerMaster
MapOutputTrackerMaster diver的map任务输出跟踪器源码清单和我的理解注释将shuffle 输出状态的序列化后缓存下来,并在后续操作中更新cacheEpoch 记录缓存中shuffle 输出状态的编号,epoch记录当前shuffle 输出状态的编号,每处理完一个shuffle ,epoch+1 /** Cache a serialized version of ...
2019-11-02 12:16:39 419
原创 MapOutputTracker
# MapOutputTracker map任务输出跟踪器源码清单和我的理解注释初始化变量/** Set to the MapOutputTrackerMasterEndpoint living on the driver. *///创建RpcEndpoint的引用,RpcEndpoint是rpc的一个端点,在收到特定消息会触发特定的函数 var trackerEndpoint: Rp...
2019-11-01 15:18:18 303
原创 TorrentBroadcast
TorrentBroadcastTorrentBroadcast继承了Broadcast,是Broadcast的一个子类,实现了Broadcast中的getValue()、doUnpersist()、doDestroy()方法diver会将序列化的对象按照指定大小默认为4mb,切分为块后保存到BlockManager。当excutor运行时,若需要的块不在本地的BlockManager中时,会...
2019-10-30 21:33:09 245
原创 Broadcast
Broadcast 广播Broadcast 可以将数据广播到每个节点上,这样节点需要使用该数据是无需发送请求,大大提升了效率。Broadcast 提供了接口,具体的方法在子类中实现,如子类TorrentBroadcast。源码清单和我的理解注释ListenerBus源码中第一行,创建了一个线程安全的ArrayList——CopyOnWriteArrayList,之后添加、者删除事件等操作...
2019-10-30 13:53:48 309
原创 BroadcastManager
BroadcastManager 广播管理器BroadcastManager 负责Broadcast的创建和销毁Broadcast为广播变量,官方解释是广播变量允许程序员保留只读变量缓存在每台计算机上,而不是将其副本与任务一起发送。例如它们可以用来,以高效的方式为每个节点提供一个大型输入数据集的副本。在spark运行时若excutor需要外部变量,可以将变量广播到excutor中。源码清单...
2019-10-29 22:12:32 1117
原创 serializerManager
serializerManager 序列化管理器serializerManager 是为spark提供序列化、压缩和加密的管理器源码清单和我的理解注释创建KryoSerializer的序列化对象KryoSerializer是在序列化速度和序列化结果都优于javaSerializer的序列化方式private[this] val kryoSerializer = new KryoSeria...
2019-10-29 20:50:57 230
原创 SecurityManager
SecurityManager 安全管理器在初始化SparkContext是会创建SparkEnv,而创建SparkEnv时会创建SecurityManager在默认情况下spark安全性处于关闭状态,这当然时不可取的,所以创建SecurityManager来保证spark的安全源码清单和我的理解注释创建初始变量// allow all users/groups to have vie...
2019-10-28 22:27:02 521
原创 LiveListenerBus
LiveListenerBusLiveListenerBus继承了SparkListenerBus,而SparkListenerBus继承了ListenerBus。LiveListenerBus会维护存放监听器的线程安全的CopyOnWriteArrayList,并对CopyOnWriteArrayList做增删改查的操作。LiveListenerBus使用了消费者和生产者的思想,使用了信号...
2019-10-27 15:31:12 158
原创 SparkListenerBus
SparkListenerBusSparkListenerBus继承了ListenerBus,并实现了doPostEvent()函数。源码清单和我的理解注释SparkListenerInterface、SparkListenerEvent中定义了不同事件以及相对应的处理方法。private[spark] trait SparkListenerBus extends ListenerBu...
2019-10-26 16:49:44 133
原创 ListenerBus 事件总线
ListenerBus 事件总线ListenerBus可以接收事件并将事件送到对应的事件监听器源码清单和我的理解注释ListenerBus源码中第一行,创建了一个线程安全的ArrayList——CopyOnWriteArrayList,之后添加、者删除事件等操作都在这个线程安全的ArrayList中执行private[spark] val listeners = new CopyOnWr...
2019-10-26 15:58:52 287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人