spark的stage是如何划分的

举报
孙中明 发表于 2022/02/23 08:23:27 2022/02/23
【摘要】 ## spark的stage是如何划分的**stage的划分依据就是看是否产生了shuflle(即宽依赖),遇到一个shuffle操作就划分为前后两个stage.**## Spark的 RDD容错机制。两个方法:利用“血缘(Lineage)容错”和检查点(checkpoint)机制。1. **“血缘”容错**:利用依赖关系进行数据恢复,在容错机制中,如果一个节点死机了,而且运算窄依赖,则只要...

## spark的stage是如何划分的

**stage的划分依据就是看是否产生了shuflle(即宽依赖),遇到一个shuffle操作就划分为前后两个stage.**


## Spark的 RDD容错机制。
两个方法:利用“血缘(Lineage)容错”和检查点(checkpoint)机制。

1. **“血缘”容错**:利用依赖关系进行数据恢复,在容错机制中,如果一个节点死机了,而且运算窄依赖,则只要把丢失的父RDD分区重算即可,不依赖于其他节点。
在窄依赖中,在子RDD 的分区丢失、重算父RDD分区时,父RDD相应分区计算所得到的数据都是子RDD分区的数据(一对一),并不存在冗余计算。
而宽依赖需要父RDD的所有分区都存在,重算花销大。在宽依赖情况下,丢失一个子RDD分区重算的每个父RDD的每个分区的所有数据并不是都给丢失的子RDD分区用的(其他子分区也会获得父亲重新计算的数据),会有一部分数据相当于对应的是未丢失的子RDD分区中需要的数据,这样就会产生冗余计算开销,这也是宽依赖开销更大的原因。因此如果使用Checkpoint算子来做检查点。
2. **检查点机制**:在宽依赖当中,如果 Lineage过长,重算开销会很大,通过设定检查点,在依赖关系中,对关系中间预算的结果进行数据冗余条份,所以数据恢复时,就可以l从检查点开始进行重新计算Lineage,减少开销。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。