spark 画图详解:资源调度再到任务调度

本文详细介绍了Spark的资源调度和任务调度。在Spark中,宽窄依赖用于切割Job并划分Stage,Stage由一组可并行计算的Task组成,其并行度取决于最后一个RDD的分区。在资源调度方面,讲解了Cluster和Client模式下的Executor创建过程,以及默认配置和参数调整。任务调度部分,阐述了Task失败后的重试机制和解决脏数据问题的方法。
摘要由CSDN通过智能技术生成

讲说spark的资源调度和任务调度,基本的spark术语,这里不再多说,懂的人都懂了。。。

按照数字顺序阅读,逐渐深入理解:以下所有截图均为个人上传,不知道为什么总是显示别人的QQ,好尴尬,无所谓啦,开始吧~~

1 宽窄依赖与Stage划分:

上熟悉的图:

 

在 Spark 里每一个操作生成一个 RDD,RDD 之间连一条边,最后这些 RDD 和他们之间的边组成一个有向无环图,这个就是 DAG,Spark 内核会在需要计算发生的时刻绘制一张关于计算路径的有向无环图,也就是 DAG。有了DAG 图,Spark 内核下一步的任务就是根据 DAG 图将计算划分成 Stage

上图:G 与 F 之间是宽依赖,所以把 G 和 F 分为两个 Stage,而 C 、D 到 F,E 到 F 都是依赖,所以 CDEF 最终划分为一个 Stage2,A 与 B 之间是依赖,B 与 G 之间是窄依赖,所以最终,A 被划分为一个 Stage1,因为 BG 的 stage 依赖于 stage1 和 stage2,所以最终把整个DAG 划分为一个 stage3,所以说,宽窄依赖的作用就是切割 job,划分 stage
Stage:由一组可以并行计算的 task 组成。
Stage 的并行度:就是其中的 task 的数量。
与互联网业界的概念有些差异在互联网的概念中,并行度是指可同时开辟的线程数,并发数是指每个线程中可处理的最大数据量,比如: 4 个线程,每个线程可处理的数据为 100 万条,那么并行度就是 4,并发量是 100 万;而对于 stage 而言,即使其中的 task是分批进行执行的,也都算在并行度中,比如,stage 中有 100 个 task,而这 100 个 task 分4 批次才能执行完,那么该 stage 的并行度也为 100。Stage 的并行度是由最后一个 RDD 的分区决定的

2 资源调度 (有人喜欢那standalone client方式举例,那我这

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值