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)的转换逻辑,故障后直接从源文件重新执行过滤,无需备份中间数据。

相关推荐
跨境数据猎手3 小时前
大数据在电商行业的应用
大数据·运维·爬虫
绿算技术4 小时前
万卡推理集群存储选型分析:从核心架构到应用视角
大数据·科技·算法·架构
heimeiyingwang5 小时前
【架构实战】分布式事务Saga模式:长事务的优雅解决方案
分布式·架构
XWalnut5 小时前
Zookeeper入门
分布式·zookeeper
朴马丁6 小时前
预制菜的“数字厨房”:PLM如何支撑菜品标准化与供应链高效协同?
大数据·人工智能·食品行业·流程行业plm
水木流年追梦6 小时前
大模型入门-大模型优化方法12-YaRN 长文本外推技术
人工智能·分布式·算法·正则表达式·prompt
奋斗的老史8 小时前
Spring-Boot 集成 TDengine 完整实战
大数据·时序数据库·tdengine
郑洁文8 小时前
音乐数据分析研究与应用
大数据·数据挖掘·数据分析·音乐数据分析
成长之路5149 小时前
【实证分析】地市环境规制综合指数测算-原始数据+do代码(2011-2024年)
大数据
逸模9 小时前
AI+BIM 重构连锁公装新范式 逸模打造数字化营建核心底座
大数据·人工智能·笔记·其他·信息可视化·重构