spark的stage是如何划分的
【摘要】 ## 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)