Java
AlanHand
这个作者很懒,什么都没留下…
展开
-
1.SparkContext源码分析
先来章整个SparkContext的架构图:1.通过SparkContext的createTaskScheduler获取TaskSchedulerImpl和SparkDeploySchedulerBackendprivate[spark] var (schedulerBackend, taskScheduler) = SparkContext.createTas原创 2017-06-22 18:38:53 · 474 阅读 · 0 评论 -
2.Master主备机制切换源码分析
先看下原理图:从Master的 completeRecovery方法开始分析 , 代码如下:/** * 完成主备机切换 , 当主Master挂掉的时候完成StandByMaster的启动 */ def completeRecovery() { // Ensure "only-once" recovery semantics using a sho原创 2017-06-22 18:45:40 · 817 阅读 · 0 评论 -
3.Master注册机制源码分析和状态改变机制源码分析
master注册机制原理图如下 , 说明了就是将Application信息 , Driver信息和所有的Worker信息加入缓存队列中1. Application的注册其实在master.scala的代码中就一段代码 : /** * 处理Application注册请求信息 */ case RegisterApplication(desc原创 2017-06-22 18:50:59 · 424 阅读 · 0 评论 -
4.master资源调度源码分析(Driver调度和Application调度(两种))
master资源调度中 , 分为Driver调度和Application调度 1.Driver调度 : 首先会对在master上注册过的worker进行随机打乱 , 利用Random.shuffle 方法就可以实现 , 同时将状态为ALIVE的worker放进一个hashmap 中 , driver调度机制 , driver是程序员编写原创 2017-06-22 18:52:05 · 584 阅读 · 0 评论 -
5.Worker源码分析
worker的源码分析代码就比较少了 , 整个worker.scala的代码只有不到600行 , 但是还得研究一下DriverRunner和ExecutorRunner的代码1. Worker中的代码主要集中在 receiveWithLogging方法中 , 该方法接收别的组件发送过来的消息 , 就像master源码中发送过来的launchDriver()消息原创 2017-06-22 18:53:27 · 514 阅读 · 0 评论 -
6.job触发流程原理剖析与源码分析
从我们编写的一个小的spark demo程序开始 :val lines = sparkContext.textFile("")val words = lines.flatMap(line => line.split("\t"))val pairs = words.map(word => (word,1))val counts = pairs.reduceByKey(_+_)count原创 2017-06-22 18:54:01 · 489 阅读 · 0 评论 -
8.Executor源码分析与Task源码分析
先来一张分析图:CoarseGrainedExecutorBackend是在worker上启动的 , 是一个worker上的后台进程 , 启动之后会获取Driver的actor立即向Driver发送注册Executor的消息 , 注册成功之后Driver又会向CoarseGrainedExecutorBackend返回注册成功的RegisterExecutor消息 , 此时就会正式原创 2017-06-22 18:57:04 · 525 阅读 · 0 评论 -
9.Shuffle读写源码分析
先直接上原理图吧 !ShuffleMapTask在计算数据之后会为每一个ResultTask创建一份bucket缓存 , 以及对应的ShuffleBlockFIle磁盘文件进行储存 , 在计算完之后会将计算过的相应信息放入MapStatus , 最后发送给Driver中的DAGScheduler的MapOutputTracker , 每个ResultTask会用BlockStoreSh原创 2017-06-22 18:59:36 · 776 阅读 · 0 评论 -
11.CacheManager源码分析
先来张原理图:原创 2017-06-22 19:05:27 · 467 阅读 · 0 评论