Spark之任务调度

查看数: 116713 | 评论数: 10 | 收藏 5
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-7-26 14:52

正文摘要:

问题导读 1、RDD的依赖关系是什么? 2、spark和MapReduce的设计理念区别是什么? 概述 Spark Application在遇到action算子时,SparkContext会生成Job,并将构成DAG图将给DAG Scheduler解析成Stage。 ...

回复

w517424787 发表于 2016-12-28 10:11:25
aboutSunFlower 发表于 2016-6-28 20:30
不过有一点没太搞明白,JobWaiter是在监控job的执行情况,如果jobFailed的话是不是会重新执行一遍?spark会 ...

spark job失败是有重试,但是当重试次数达到上线时,如果job还没有执行成功,则任务就会失败!
w517424787 发表于 2016-12-28 09:58:31
freshru 发表于 2016-5-30 17:38
**** 作者被禁止或删除 内容自动屏蔽 ****

肯定是不会提交job的,必须要有Action,一般会是collect,foreach等来输出数据!
deajosha 发表于 2016-8-10 08:30:38
mark  刚开始学习spark 感觉很强大
aboutSunFlower 发表于 2016-6-28 21:22:43
认真学习了4遍
aboutSunFlower 发表于 2016-6-28 20:32:23
aboutSunFlower 发表于 2016-6-28 20:30
不过有一点没太搞明白,JobWaiter是在监控job的执行情况,如果jobFailed的话是不是会重新执行一遍?spark会 ...

个人理解spark应该是有保证所有的job都执行成功的机制,比如结合checkpoint什么的
aboutSunFlower 发表于 2016-6-28 20:30:51
不过有一点没太搞明白,JobWaiter是在监控job的执行情况,如果jobFailed的话是不是会重新执行一遍?spark会保证所有的job都执行成功吗?
aboutSunFlower 发表于 2016-6-28 20:28:31
又学到了,楼主分析很详细哦,根据这个,我觉得我的sparkstreaming应该是finalStage,没有进行shuffle
freshru 发表于 2016-5-30 17:38:42
Job的生与死
既然用户提交的job最终会交由 DAGScheduler 去处理,那么我们就来研究一下DAGScheduler 处理job的整个流程。在这里我们分析两种不同类型的job的处理流程。

1.没有shuffle和reduce的job
val textFile = sc.textFile("README.md")
textFile.filter(line => line.contains("Spark")).count()
复制代码


2.有shuffle和reduce的job
val textFile = sc.textFile("README.md")
textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
复制代码


首先在对 RDD 的 count() 和 reduceByKey() 操作都会调用SparkContext 的 runJob() 来提交job,而 SparkContext 的 runJob() 最终会调用 DAGScheduler 的 runJob() :




reduceByKey为transformation操作,textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)执行完了之后应该还没有生成job,所以会有提交job吗?
buddhist 发表于 2015-10-31 09:15:30
楼主,问一下子,本帖中对应的是哪个版本的spark源码呢?
关闭

推荐上一条 /2 下一条