大数据:spark内核调度,DAG,job,宽窄依赖,stage阶段,内存计算管道,并行度task数量

大数据:spark内核调度

2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开
测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库
这oracle比sql安全,强大多了,所以你需要学习,最重要的,你要是考网络警察公务员,这玩意你不会就别去报名了,耽误时间!
与此同时,既然要考网警之数据分析应用岗,那必然要考数据挖掘基础知识,今天开始咱们就对数据挖掘方面的东西好生讲讲 最最最重要的就是大数据,什么行测和面试都是小问题,最难最最重要的就是大数据技术相关的知识笔试


大数据:spark内核调度

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
DAG,有方向direction ancircle 无环graph图
在这里插入图片描述
DAG有向无环图
在这里插入图片描述
action是执行开关
执行之前是有一个迭代链条哦
这个链条就是DAG有向无环图

在这里插入图片描述
就是执行流程图,不需要运行,看代码就知道你要咋运行

在这里插入图片描述

一步步走
构建DAG图
在这里插入图片描述在这里插入图片描述
构建出来一个DAG
因为take启动就可以搞定所有的任务

继续需求2
在这里插入图片描述
又是跟split_rdd开始玩的
在这里插入图片描述
take就是触发开关
持久化了的缓存就可以直接用

在这里插入图片描述
在这里插入图片描述
各个action,都有各自的链条

在这里插入图片描述
一个action触发一个工作应用程序子任务job
job
一条链子就是一个job

在这里插入图片描述
懂了,action有多少个,就有多少dag
一个application包含多个action,就是多个job

懂了

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
分叉

在这里插入图片描述
窄依赖美滋滋
线程运行在不同的executor
之间,那传输数据,可能造成网络io性能满
怎么说呢?
所以窄依赖的阶段,全部放同一个内存中计算?是不是不要传输io了
同一个线程中处理好不好?
很好
在这里插入图片描述
线程1全干一条线,内存中计算的一条管子,美滋滋,叫内存计算管道,叫pipeline

在这里插入图片描述
同理,右边一样

那宽依赖就必须走网络io了
或者都在同一个executor上,也是内存内部计算了【很难做到】

不得不走网络io的就得传输了,反正计算管道内部不就是美滋滋了

当然了,spark并行的优先级,是核心
内存计算是次要的

你想要全内存,知识local模式,绝对不是yarn模式

大数据做不到全内存内部计算的

在这里插入图片描述
没事不要修改并行度
这样性能才能保证
懂了吧
不要乱

不要没事改分区数量

在这里插入图片描述
窄依赖直接做内存迭代,即内存计算管道,一个task干就完事了
不需要网络io传输,提高了性能

spark构建了DAG

DAG往后传输形成宽窄依赖

窄依赖内就是管道计算迭代

在这里插入图片描述
spark比MapReduce的好处就是算子多
spark有内存迭代管道,少了很多io网络传输,这性能一下子就高了

这就是面试的题目了,考试要区分好
在这里插入图片描述
并行度,不是分区哦
最好分区就是和并行度类似

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
shuffle是洗牌
最好别洗网络io或者太多洗牌操作
难搞

计算复杂
在这里插入图片描述
在这里插入图片描述
并行度是cpu数量的2–10倍


总结

提示:重要经验:

1)
2)学好oracle,即使经济寒冬,整个测开offer绝对不是问题!同时也是你考公网络警察的必经之路。
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. RDD(Resilient Distributed Datasets):弹性分布式数据集,是Spark中最基本的数据抽象,是一个不可变的分布式对象集合,可以并行计算。RDD可以通过从Hadoop InputFormat中读取数据、在Spark中的其他RDD转换操作和从外部存储系统中获取数据创建。 2. DAG(Directed Acyclic Graph):有向无环图,它表示Spark任务执行的依赖关系。每个Spark应用程序都会生成一个DAG,用于描述任务之间的依赖关系。 3. Executor:执行器,是Spark中执行计算任务的工作进程。一个Spark应用程序可以由多个Executor组成,每个Executor都运行在独立的JVM进程中,负责运行Spark应用程序中的任务。 4. Application:Spark应用程序,是一个包含了用户编写的Spark任务代码和Spark集群上的资源配置信息的集合。在Spark中,应用程序通常以JAR包的形式提交到Spark集群中运行。 5. Task:任务,是Spark应用程序中最小的计算单元,是对RDD的一个分区进行操作的一段代码。每个Task都会被分配到一个Executor上运行。 6. Job:作业,是由一组相关的Task组成的,这些Task可以并行执行,且它们之间存在依赖关系。Spark应用程序中的每个Action操作都会生成一个Job。 7. Stage阶段,是Spark作业中的一个任务划分单元,是由若干个Task组成的。Spark会将一个Job划分成多个Stage,以便进行并行计算。一个Stage中的所有Task都可以并行执行,但是它们之间存在着依赖关系。Spark将具有相同的计算依赖关系的Task划分为同一个Stage

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰露可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值