Spark入门必知:DAG、Cache、RDD、CheckPoint

本文介绍了Spark中的关键概念,包括DAG(有向无环图)的作用,解决Hadoop MapReduce的局限性,以及DAG的工作流程。接着讨论了Cache缓存的使用场景、注意事项及存储级别选择。还提到了checkPoint作为高可用策略,区别于cache在于数据存储在HDFS。此外,解释了RDD(弹性数据集)的宽窄依赖以及Stage的划分规则。
摘要由CSDN通过智能技术生成

目录

前言

关键字

DAG(有向无环图)

概念

DAG 解决了什么问题

工作流程

Cache 缓存

为什么要用cache

cache的使用

注意点

cache存储级别

如何选择存储级别

checkPoint(检查点)

cache和checkpoint的区别

RDD(弹性数据集)

宽窄依赖

1.窄依赖(1对1 | N对1)

2.宽依赖(一对多)

分区优化

Stage (阶段)

概念

划分规则

Spark案例


前言

这里只向大家介绍几个关键的关键字知识点,详细系统学习还是建议去B站

关键字

DAG(有向无环图) cache(缓存)  checkpoint(检查点) RDD(弹性数据集) 算子

其中算子可以理解为Java里方法的调用,每 点. 一次就是调用一次方法,Spark的算子与Scala的算子有很多共同之处,在学习Spark之前可以参考我前面 Scala常用算子 博客,里面对算子进行了分类

DAG(有向无环图)

概念

DAG 是一组顶点和边的组合。顶点代表了 RDD, 边代表了对 RDD 的一系列操作。

DAG Scheduler 会根据 RDD 的 transformation 动作,将 DAG 分为不同的 stage,每个 stage 中分为多个 task,这些 task 可以并行运行。

DAG 数据结构不是链表,而是 Graph 图。Graph 上有很多节点,也叫做 Vertices 顶点,连接两个节点的叫做 edges 边。没错,就是咱们中小学数学课上学到的顶点和边的概念。链表,Tree ,图是三个复杂度递进的数据结构。链表就是一条有方向的线。Tree 是有分叉的,但是任意两个节点间只有一条路径能到达另外一点,也就是不能形成闭合的图形。

DAG 解决了什么问题

DAG 的出现主要是为了解决 Hadoop MapReduce 框架的局限性。那么 MapReduce 有什么局限性呢?

主要有两个:

  • 每个 MapReduce 操作都是相互独立的,HADOOP不知道接下来会有哪些Map Reduce。
  • 每一步的输出结果,都会持久化到硬盘或者 HDFS 上。

当以上两个特点结合之后,我们就可以想象,如果在某些迭代的场景下,MapReduce 框架会对硬盘和 HDFS 的读写造成大量浪费。

而且每一步都是堵塞在上一步中,所以当我们处理复杂计算时,会需要很长时间,但是数据量却不大。

所以 Spark 中引入了 DAG,它可以优化计算计划,比如减少 shuffle 数据。

工作流程

  1. 解释器是第一层。Spark 通过使用Scala解释器,来解释代码,并会对代码做一些修改。
  2. 在Spark控制台中输入代码时,Spark会创建一个 operator graph, 来记录各个操作。
  3. 当一个 RDD 的 Action 动作被调用时, Spark 就会把这个 operator graph 提交到 DAG scheduler 上。
  4. DAG Scheduler 会把 operator graph 分为各个 stage。 一个 stage 包含基于输入数据分区的task。DAG scheduler 会把各个操作连接在一起。
  5. 这些 Stage 将传递给 Task Scheduler。Task Scheduler 通过 cluster manager 启动任务。Stage 任务的依赖关系, task scheduler 是不知道的。
  6. 在 slave 机器上的 Worker 们执行 task。

Cache 缓存

为什么要用cache

spark中一个job是由RDD的一连串transformation操作和一个action操作组成。只有当执行到action操作代码时才会触发生成真正的job,从而根据action操作需要的RDD及其依赖的所有RDD转换操作形成实际的任务。也就是会从源头输入数据开始执行整个计算过程,并没有如我们想的单机程序那样达到RDD复用的目的。

为了达到RDD复用的目的,就需要对想要复用的RDD进行cache,RDD的缓存与释放都是需要我

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值