上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页
  2020年5月19日
摘要: CacheManager原理图 入口RDD的iterator方法 final def iterator(split: Partition, context: TaskContext): Iterator[T] = { // 如果持久化级别不是none,之前持久化过RDD,那么就不要直接去执行父RDD 阅读全文
posted @ 2020-05-19 00:28 清浊 阅读(249) 评论(0) 推荐(0) 编辑
  2020年5月18日
摘要: BlockManager负责数据存储管理,原理图如下 相关代码在org.apache.spark.storage,BlockManagerMaster,BlockManagerMasterActor,主要是负责管理blockManager的映射 /* * Licensed to the Apache 阅读全文
posted @ 2020-05-18 22:45 清浊 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 第一个特点, 在Spark早期版本中,那个bucket缓存是非常非常重要的,因为需要将一个ShuffleMapTask所有的数据都写入内存缓存之后,才会刷新到磁盘。但是这就有一个问题,如果map side数据过多,那么很容易造成内存溢出。所以spark在新版本中,优化了,默认那个内存缓存是100kb 阅读全文
posted @ 2020-05-18 22:12 清浊 阅读(487) 评论(0) 推荐(0) 编辑
  2020年5月14日
摘要: 入口函数如下,Executor // 对于每一个task都会创建一个taskRunner,继承了java的Runnable接口可以作为一个线程任务进行调用,后面会放入线程池中进行执行 def launchTask( context: ExecutorBackend, taskId: Long, at 阅读全文
posted @ 2020-05-14 19:02 清浊 阅读(354) 评论(0) 推荐(0) 编辑
  2020年5月13日
摘要: 一直采用sourcetree来作为git图形化界面,由于sourcetree特别卡顿,每次提交代码浪费大量时间,开始切换toroiseGit 1、首先生成秘钥 采用PuTTYgen生成公钥和私钥,然后保存公钥和私钥,因为不能截图请大家脑补 2、传递公钥到gitlab或者gitee上然后配置好 3、P 阅读全文
posted @ 2020-05-13 13:43 清浊 阅读(279) 评论(0) 推荐(0) 编辑
  2020年5月12日
摘要: 1、executor注册机制 executor启动的是一个CoarseGrainedExecutorBackend这样一个进程, // Make fake resource offers on just one executor def makeOffers(executorId: String) 阅读全文
posted @ 2020-05-12 18:23 清浊 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 1、DAGScheduler submitMissingTasks taskScheduler.submitTasks TaskSchedulerImpl.submitTasks createTaskSetManager backend.reviveOffers() DriverActor Revi 阅读全文
posted @ 2020-05-12 17:54 清浊 阅读(259) 评论(0) 推荐(0) 编辑
  2020年5月11日
摘要: 原理图如下 重点DAGScheduler会从触发Action操作的RDD划分stage,然后往前倒退,如果之前依赖的RDD是窄依赖就会放入同一个stage,如果是宽依赖就会就会重新划分一个stage DAGScheduler runJob submitJob eventProcessLoop.pos 阅读全文
posted @ 2020-05-11 22:37 清浊 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 1、一个action就会触发一个job, package cn.spark.study.core import org.apache.spark.{SparkConf, SparkContext} /** * @author: yangchun * @description: * @date: Cr 阅读全文
posted @ 2020-05-11 18:25 清浊 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 1、worker里面先找到launchDriver case LaunchDriver(driverId, driverDesc) => { logInfo(s"Asked to launch driver $driverId") // 创建DriverRunner线程,包括在driver失败时自动 阅读全文
posted @ 2020-05-11 15:58 清浊 阅读(242) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页