spark的血脉机制

第一个问题:软件在设计时是怎么保证数据的安全性?

方案一:副本机制:将数据存储多份,每一份存在不同的节点上【内存一般不建议使用副本,内存小,而且易丢失】 hdfs

方案二:操作日志:记录内存的所有变化追加到一个日志文件中,可以通过日志文件进行恢复【日志数据量太大,恢复部分数据性能特别差】 namenode、redis

方案三:依赖关系:记录所有数据的来源,当数据丢失的时候,基于数据来源重新构建一份 spark

Spark的血缘机制(Lineage)是其容错设计的核心,通过记录数据转换的依赖关系而非存储中间数据实现高效容错。其运作机制如下:

一、血缘机制原理

  1. 依赖关系记录

    每个RDD(弹性分布式数据集)存储其生成逻辑: $$ \text{RDD}\text{new} = f(\text{RDD} \text{parent}) $$ 例如:textRDD = fileRDD.flatMap(lambda line: line.split(" "))

  2. 有向无环图(DAG)

    所有转换操作构成依赖关系图:

    复制代码
    graph LR
    A[原始RDD] --> B[Map操作]
    B --> C[Filter操作]
    C --> D[最终RDD]

二、容错实现流程

当节点故障导致分区丢失时:

  1. 回溯依赖链
    根据血缘记录定位数据源头
  2. 重新计算
    仅重算丢失分区的转换路径

    \\text{恢复时间} \\propto \\text{依赖链长度}

三、技术优势

  1. 空间高效
    避免数据复制,节省存储成本
  2. 计算优化
    支持检查点(Checkpoint)缩短依赖链

    T_\\text{recovery} = \\min(T_\\text{full_compute}, T_\\text{checkpoint})

案例 :过滤大文件时仅需记录filter(func)的转换逻辑,故障后直接从源文件重新执行过滤,无需备份中间数据。

相关推荐
小技工丨5 小时前
【02】Apache Flink 物化表与流批一体处理
大数据·flink·apache
Jerry Lau5 小时前
Flink CDC 入门实战:从原理到踩坑全记录 (datastream/SQL 双版本)
大数据·sql·flink
TG:@yunlaoda360 云老大5 小时前
腾讯云国际站代理商的TAPD如何帮助企业进行成本控制?
大数据·云计算·腾讯云
Hello.Reader5 小时前
Flink SQL ANALYZE TABLE手动采集表统计信息,让优化器“更懂数据”
大数据·sql·flink
ggabb5 小时前
新国标电动车爬坡困境:当限速25km/h遭遇安全危机,无责伤亡谁来买单?
大数据·人工智能·安全
Query*5 小时前
分布式消息队列kafka【六】—— kafka整合数据同步神器canal
分布式·kafka
羑悻的小杀马特5 小时前
破局IoT与大数据协同难题!Apache IoTDB用硬核性能打底、强生态护航,成行业新宠!
大数据·物联网·ai·apache·iotdb
2301_807288635 小时前
MPRPC项目(第七天,rpcprovider分发rpc服务)
网络·分布式·rpc
L、2185 小时前
深入实战:使用 Platform Channel 实现 Flutter 与 OpenHarmony 原生能力互通
分布式·flutter·harmonyos