文档章节

spark内核揭秘-09-RDD的count操作 触发Job全生命周期-02

stark_summer
 stark_summer
发布于 2015/01/20 18:02
字数 414
阅读 117
收藏 3

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

接着上一篇文章继续分析代码:

3.1.3.3.3.1、进入TaskSet 方法:


3.1.3.3.3.2、进入taskScheduler.submitTasks(new TaskSet(tasks.toArray, stage.id, stage.newAttemptId(), stage.jobId, properties)) 方法:



从源代码中可以看出DAGScheduler中向TaskScheduler以Stage为单位提交任务,Stage是以TaskSet为单位的,构建一个TaskSetManager,当isLocal=false(集群模式)& hasReceivedTask=false(没启动的),将会创建一个定时任务来监控worker集群是否启动,并且是15000毫秒后启动,并间隔15000毫秒继续循环运行

3.1.3.3.3.3、进入 backend.reviveOffers() 方法:


该方法是 CoarseGrainedSchedulerBackend的方法,此时会向driverActor发送ReviveOffers消息,driverActor的实现代码如下:


此时跟踪进DriverActor的实现中:






可以看到ReviveOffers消息的具体实现是makeOffers方法:


WorkerOffer对象代表是某个Executor上可用的资源,freeCores(id)是该executor上空余的CPU数目:


进入launchTasks:



executorActor发送启动Task的请求,其实是向CoarseGrainedExecutorBackend发送LaunchTask消息:





在LaunchTask消息中会导致executor.lauchTask(this, taskDesc.taskId, taskDesc.name, taskDesc.serializedTask)的调用:


其中的TaskRunner封装了任务本身:



任务执行的是交给了线程池去执行的。 其实这些代码已经分析过了,在之前的博客中

我们在回到SparkContext:


4、进入progressBar.foreach(_.finishAll())方法:


5、进入rdd.doCheckpoint()方法


进入checkpointData.get.doCheckpoint()方法:



© 著作权归作者所有

stark_summer
粉丝 61
博文 75
码字总数 51050
作品 0
朝阳
CEO
私信 提问
加载中

评论(2)

stark_summer
stark_summer 博主

引用来自“-多啦A梦-”的评论

赞一个~~~,岳哥,你这最近写了好多啊。

加油学习步伐
-悟空-
-悟空-
赞一个~~~,岳哥,你这最近写了好多啊。
从0开始学习spark的学习笔记(1)

所谓学习是要在快乐中进行的,这是我用了多年的桌面壁纸现在传给大家。 Spark零基础入门第一课 1.大数据生态简介: 2.Spark 简介: 3. spark 本地安装和集群安装: 3.1 spark下载选择 4. spa...

蛋蛋淡淡定
04/21
0
0
Spark2.1.0之基础知识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/beliefer/article/details/80303035 在阅读本文之前,读者最好已经阅读了《Spark2.1.0之初识Spark》一文,本文...

泰山不老生
2018/05/24
0
0
Spark 并行计算模型:RDD

Spark 允许用户为driver(或主节点)编写运行在计算集群上,并行处理数据的程序。在Spark中,它使用RDDs代表大型的数据集,RDDs是一组不可变的分布式的对象的集合,存储在executors中(或从节...

osc_hzy90uit
2019/06/07
1
0
Spark内部原理之运行原理一

原文来源于:Spark内部原理之运行原理一 在大数据领域,只有深挖数据科学领域,走在学术前沿,才能在底层算法和模型方面走在前面,从而占据领先地位。 Spark的这种学术基因,使得它从一开始就...

sjf0115
2018/03/15
0
0
Spark笔记整理(二):RDD与spark核心概念名词

[TOC] Spark RDD 非常基本的说明,下面一张图就能够有基本的理解: Spark RDD基本说明 1、Spark的核心概念是RDD (resilient distributed dataset,弹性分布式数据集),指的是一个只读的,可分...

xpleaf
2018/04/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【视频】工业互联网在线交流现状、发展、怎么建和规划

PPT介绍目录: 工业互联网的现状 平台介绍 技术路线 人力资源 现实问题 成本中心 工业互联网的发展 两大推动引擎 用户需求的改变 片面与极端 由点到面,点面结合 突破点 现实路径 落脚点 工业...

osc_3ubrwgtm
40分钟前
51
0
单臂-Etrunk-三层交换-路由-DHCP中继-NAT-HTTP服务 实验题

单臂-Etrunk-三层交换-路由-DHCP中继-NAT-HTTP服务 实验题 实验环境 需求描述 pc1、pc2、pc3、pc4可以ping通 虚拟机可以打开网页 了解dhcp中继 了解网络地址转换技术NAT 了解access口跟trunk...

osc_h7zc4umy
41分钟前
24
0
医院防勒索病毒灾备解决方案

医院成勒索病毒重灾区 上述某妇幼保健院并非是个例。近年来,针对医院等医疗系统的网络安全风险一直处于活跃状态且呈现持续上升的态势。医院的业务系统及医学记录、病患资料、预约信息等大量...

osc_gh0ost1g
43分钟前
18
0
2招带你快速获取响应头与发送头

今天带大家用两招快速获取响应头以及发送头。 1、获取请求头 想要获取请求头,就需要会用抓包工具,目前比较普遍的就是fiddler。大家可以在百度搜索下载。首先我们打开fiddler 你会发现左侧这...

osc_3g4j2ghj
45分钟前
20
0
Python Django 数据库基础

对数据库的操作可以直接使用SQL语句,也可以使用图形界面工具。这些一般是DBA(数据库管理人员)做的。开发人员是使用代码链接数据库,对数据库进行操作。 下面进行Python Django框架ORM创建...

osc_itgved4p
46分钟前
26
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部