一、DAG的总体图spa
简要说明(我的理解):hash
①当全部的RDD触发action的时候,会生成一个DAGit
②stage是由DAG进行切分的,能够理解stage是一个tasksetio
③DAG是根据宽依赖进行切分stage的,stage是由Driver进行提交的map
④stage是一个一个提交的,当前一个stage计算完成的时候,下一个stage才会进行拉取计算im
经过hue页面能够看到一个stage包括几个task任务总结
二、如何切分stageimg
DAG是根据宽依赖与窄依赖进行切分,通常来讲,有shuffle的时候,就会切分前一个stage,也能够是以宽依赖进行切分的co
①窄依赖:join
②宽依赖
③整体
总结:
①通常来讲,reducebykey,groupbykey都是shuffle阶段,要切分
②若是是jion的话,有两种状况,一种是groupby以后的,这种状况是属于窄依赖
另外一种是直接join,产生shuffle属于宽依赖
③默认是以key的hashpartition进行分区,反正是shuffle阶段就是要切分
④像map,flatMap,都是窄依赖