Spark job划分stage和Spark参数设置调优

Spark job划分和参数设置

一、Spark的job划分

1.RDD

弹性分布式数据集(RDD)是不可变Java虚拟机(JVM)对象的分布式集合,该数据集是分布式的,数据集被划分成块,分布在多个执行器节点上。
RDD有两组并行操作,转换(返回指向新RDD的指针)和动作(在运行计算后向驱动程序返回值)。RDD转换操作是惰性的,不会立即计算结果,只有动作执行了并且需要将结果返回给驱动程序时,才会计算转换。

2.窄依赖和宽依赖
  • 窄依赖是指父RDD的每个分区只被子RDD的一个分区所使用。
  • 宽依赖是指父RDD的每个分区都可能被多个子RDD分区所使用。

判断窄依赖和宽依赖牢记只需要根据:
父RDD中分区内的数据,在子类RDD中是否也完全处于一个分区,如果是就是窄依赖,如果不是就是宽依赖。

窄依赖和宽依赖如下图所示:
左边为窄依赖,左边的一个子RDD虽然继承了两个父RDD分区,但是两个父RDD分区的数据全部在一个子RDD分区中。
右边为宽依赖,父RDD分区中的数据被多个子RDD分区继承,因此是宽依赖。

在这里插入图片描述
相比于宽依赖,窄依赖对优化很有利 ,主要基于以下两点:

宽依赖往往对应着shuffle操作,需要在运行过程中将同一个父RDD的分区传入到不同

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

最笨的羊羊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值