spark DAG 切分 stage

原创
2018/01/10 15:47
阅读数 229

1、DAG的整体图

简要说明(个人理解):

①当所有的RDD触发action的时候,会生成一个DAG

②stage是由DAG进行切分的,可以理解stage是一个taskset

③DAG是根据宽依赖进行切分stage的,stage是由Driver进行提交的

④stage是一个一个提交的,当前一个stage计算完成的时候,下一个stage才会进行拉取计算

通过hue页面可以看到一个stage包括几个task任务

2、如何切分stage

DAG是根据宽依赖与窄依赖进行切分,一般来说,有shuffle的时候,就会切分前一个stage,也可以是以宽依赖进行切分的

①窄依赖:

②宽依赖

③总体

总结:

①一般来说,reducebykey,groupbykey都是shuffle阶段,要切分

②如果是jion的话,有两种情况,一种是groupby之后的,这种情况是属于窄依赖

另一种是直接join,产生shuffle属于宽依赖

③默认是以key的hashpartition进行分区,反正是shuffle阶段就是要切分

④像map,flatMap,都是窄依赖

 

 

 

 

 

 

展开阅读全文
打赏
1
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
1
分享
返回顶部
顶部