spark流程跟踪
每个action对应一个job,每个job里面会有很多个阶段(stage),其实每个stage都是一个算子(Operation),可能是transformation,可能是action;但是action一定是一个job的最后一个stage, 其实action之前的stage都是做DAG而已,真正触发执行其实是在action执行的时候,因为action的操作是基于前面的transformation执行结果基础之上的,这也算是一种懒加载吧。
关于DAG,通过看YARN的UI,发现其实只是包括Transformation(在job页面,点击DAG Visualization),但是Job其实是包含两类stage,一部分是DAG(map算子组合)stage,一部分执行(action)stage,一定是最后一个stage;所以在job页面,DAG+stage decription里面描述的action,组合在一起才是一个Job;与之对应的一个job最多只有两个stage,一个stage是map构建的DAG过程,第二个stage
举一个栗子:
rdd.map( r => mapFunction(r)).repartitionAndSortWithinPartitions(regionSplitPartitioner).hbaseForeachPartition(this, (it, conn)
这段代码的执行将会创建一个job,一般job都是以action名称来描述,这个job的描述就是: foreachPartition at HBaseContext.scala:103,包括了action的类型以及代码位置。
这个job就有两个stage:
map at HBaseContext.scala:771
foreachPartition at HBaseContext.scala:103
最后一个概念,就是task,task和stage有关,对应两种task:ShuffleMap task以及Result task两种。前者是指将Map的数据进行分桶,分区;后者指的是将数据发送给Driver。
spark流程跟踪的更多相关文章
- activiti流程跟踪图算法
流程跟踪图-推导算法 工作中使用activiti实现流程图相关业务,但是上线后遇到问题,偶尔流程图出不来.查阅了一下画流程图的实现,基本上是参见:activiti-流程图颜色变化之一篇. 核心类,参见 ...
- I.MX6 Linux Qt 启动流程跟踪
/************************************************************************** * I.MX6 Linux Qt 启动流程跟踪 ...
- Buildroot 打包文件系统流程跟踪
/********************************************************************************* * Buildroot 打包文件系 ...
- am335x u-boot2011.09 SPL 流程跟踪
跟踪一下 u-boot 2011.09 MLO在 nandflash 下运行的流程 首先,直接进入 start.S // arch/arm/cpu/armv7/start.S 36 .globl _s ...
- show create table底层流程跟踪
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 导语 SHOW CREATE TABLE语句用于为指定表/视图显示创建的语句,本文将简要描述如何在MySQL源码里跟踪和学 ...
- u-boot2011.09 u-boot.img 的流程跟踪
一.主要是start.S 里面的 board_init_f 以及 board_init_r 函数分析,MLO与 u-boot.omg 的区别就在这里 二. MLO 加载完毕,他会重新回到 start. ...
- android 流程跟踪
#记录一下 Thread cur_thread = Thread.currentThread(); StackTraceElement stack[] = cur_thread.getStackTra ...
- android WiFi ASSOC_REJECT 流程跟踪
Android设备在于AP关联时,如果AP返回关联拒绝帧,Android设别会把AP加入黑名单中. 黑名单中的设备将会在扫描时,延时一段时间放在后面处理. 代码以及log基于SDM450, Andro ...
- spark(3)
0.spark -------------------------------------------- transformation map filter repartition spark核心AP ...
随机推荐
- Squid 正向代理配置
Squid 正向代理配置 1.删除主配置文件重写写入配置 rm -f /etc/squid/squid.conf 2.重新写入配置正向代理 vim /etc/squid/squid.conf # 监听 ...
- jQuery自动轮播图片焦点图
在线演示 本地下载
- C# 利用TTS实现文本转语音
TSS(Text To Speech),语音朗读文本的技术,在Windows下台下,微软给我们提供了一套API接口(Speech API).金山词霸的朗读功能就是用的这个接口. WindowsXP自带 ...
- Go Flag包-命令行参数解析
Flag包用法 package main import ( "flag" "fmt" ) func main() { var num int var mode ...
- Go HelloWorld 网络版和并发版
网络版 package main import ( "net/http" "fmt" ) func main() { http.HandleFunc(" ...
- c++ boost库学习三:实用工具
noncopyable 大家都知道定义一个空类的时候,它实际包含了构造函数,拷贝构造函数,赋值操作符和析构函数等. 这样就很容易产生一个问题,就是当用户调用A a(“^_^") 或者A c= ...
- 安装MySQL5.7.18遇到的坑
最近才注意到MySQL的各个版本之间差别还挺大的,比如5.5.x版本的timestamp类型列只能有一个设置为default CURRENT_TIMESTAMP的,于是尝试了换成一个新版本是mysql ...
- Could not reserve enough space for object heap解决办法
Centos6.4 Jdk1.6 1.在终端输入Java命令报错 [root@localhost local]# java Error occurred during initialization ...
- Mssql 比较好的写法
DECLARE @date DATETIME= '2016-11-01'; DECLARE @date2 DATETIME= DATEADD(day, 1, @date); Declare @1 Ta ...
- QT QDockWidget锚接部件 和 QTreeWidget 树形部件 构成树形选择项
1. 如图,在mainwindow中 添加DockWidget到右侧,里面镶嵌TreeWidget. 2. QTreeWidget *treeWidget = new QTreeWidget; // ...