spark 血缘 窄依赖 宽依赖 Spark job 划分 DAG有向无环图

RDD 血缘依赖作用

  1. 可以高效的解决数据容错时
  2. 对划分任务时候起到重要作用

RDD依赖划分

spark rdd 血缘依赖分为2种:窄依赖和宽依赖

  • 窄依赖

窄依赖,父RDD一个Partition(分区)中的数据最多被子RDD的一个Partition使用

在这里插入图片描述

  • 宽依赖

宽依赖,父RDD一个Partition(分区)中的数据可被子RDD的多个Partition使用,过程中会引起Shuffle

在这里插入图片描述

//查看mapRDD的血缘关系
println(mapRDD.toDebugString)
//查看mapRDD的依赖关系
println(mapRDD.dependencies)

Spark Job 划分

先看一下 Spark Job 划分流程图

在这里插入图片描述

Spark Job 划分公式

一个Spark集群可以同时运行多个Application, 这些Application是由集群管理器(cluster manager)来调度的,一个Application可以并发的运行多个 job,job对应着代码中的行动算子,每执行一个行动算子,就会提交一个job,一个job由多个stage组成,stage个数=宽依赖的个数+1,一个 stage 由多个 task 组成,task个数=每一阶段最后一个RDD的分区数

在这里插入图片描述

DAG有向无环图

DAG(Directed Acyclic Graph)有向无环图,这里指RDD转换执行的过程

一个 Spark 程序可以有多个 DAG(有几个 Action/Job,就有几个 DAG)

一个 DAG 可以有多个 Stage(根据宽依赖/shuffle 进行划分)

一个 Stage 可以有多个 Task 并行执行(task 数=分区数)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值