spark提交任务的流程

1.spark任务提交阶段划分


spark提交任务分为五个状态,五个状态之间的有四个转换过程:
(1)根据代码中的Transformations确定RDD。
(2)根据RDD确定RDD的类型和它们之间的血统关系,生成一个DAG。
(3)将DAG提交给DAGScheduler来划分出不同的task,以及task执行顺序和依赖关系。
(4)TaskScheduler调度任务,采用集群中配置的调度方式完成task调度。最后任务的执行交给了worker

注意:当任务发生执行失败的时候,taskSchduler负责开启一个新的task去继续执行那个任务。哪个先返回结果则停止。

2.wordcount的执行过程


(1)根据wordcount代码可以划分为:
HadoopRDD(textFile())->MapPartitionsRDD(flatMap())->MapPartitionsRDD(map())->ShuffledRDD(reduceByKey())->MapPartitionsRDD(saveAsTextFile())

 sc.textFile(args(0)).flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).saveAsTextFile(args(1))

(2)stage:明显,wordcount的执行流程分为两个stage,因为产生了一次shuffle,左右一边一个stage。
(3)task:某个stage中的在同一个partitioner中完成的任务被划分为了一个task。

3.stage划分

宽依赖是划分Stage的依据。

问:为什么图中有三个stage?
答:G的执行必须要以F和B的结果作为依赖,不仅要B执行结束,F也要执行结束。因此B和F分为两个stage1和stage2产生的结果为stage3。

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-26 15:18
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-27 20:55
点赞 评论 收藏
分享
白火同学:能。我当初应届沟通了1200,收简历50,面试10左右吧,加油投吧
点赞 评论 收藏
分享
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
点赞 评论 收藏
分享
就在我现在公司的隔壁每天经过都唏嘘不已(就是羡慕)什么时候可以到这里上班啊
柯基在debug:从大学毕业投简历到现在了,应届的时候我都面到终面了,现在工作四年了连简历初筛都过不了了
投递莉莉丝游戏等公司8个岗位 >
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务