HDFS Erasure coding-纠删码介绍和原理

HDFS Erasure coding-纠删码介绍和原理

  • 三副本策略弊端
  • [Erasure Coding(EC)简介](#Erasure Coding(EC)简介)
    • [Reed- Solomon(RS)码](#Reed- Solomon(RS)码)
  • EC架构

三副本策略弊端

  • 为了提供容错能力,hdfs回根据replication factor(复制因子)在不同的datanode上复制文本块
  • 默认复制因子为3,(注意这里的3指的是1+2=3,不是额外3个),则原始块除外,还将有额外两个副本。每个副本使用100%的存储开销,因此导致200%的存储开销。这些副本也消耗其他资源,例如网络带宽
  • 在复制因子为N时,存在N-1个容错能力,但存储效率仅为1/N

Erasure Coding(EC)简介

  • 纠删码技术简称EC,是一种编码容错技术。最早用于通信行业,数据传输中的数据恢复。它通过对数据进行分块,然后计算出校验数据,是的各个部分的数据产生关联性。当一部分数据块丢失时,可以通过剩余的数据块和校验块计算出丢失的数据块
  • Hadoop3.0之后引入了纠删码技术,它可以提高50%以上的存储利用率,并且保证数据的可靠性

Reed- Solomon(RS)码

  • reed-solomon(rs)码是常用的一种纠删码,它有两个参数k和m,记为RS(k,m)
  • k个数据块组成一个向量被乘上一个生成矩阵(Generator Matrix)GT从而得到一个码字(codeword)向量,该向量由k个数据块(d0,d1...d3)和m个校验块(c0,c1)组成
  • 如果数据块丢失,可以用GT逆矩阵乘以码字向量来恢复出丢失的数据块。

EC架构

为了支持纠删码,HDFS体系结构进行了一些更改调整

  • namenode扩展
    • 条带化的HDFS文件在逻辑上由block group(块组)组成,每个块组包含一定数量的内部块。这允许在块组级别而不是块级别进行文件管理
  • 客户端扩展
    • 客户端的读写路径的到来增强,可以并行处理块组中的多个内部块
  • datanode扩展
    • datanode运行一个附加的ECWorker任务,以对失败纠删编码块进行后台恢复。namenode检测到是吧的EC块,然后namenode选择一个datanode进行恢复工作
  • 纠删码策略
    为了适应异构的工作负载,允许HDFS集群中的文件和目录具有不同的复制和纠删码策略。纠删码策略封装了如何对文件进行编码/解码。默认情况下启用RS-6-31024k策略,RS便是编码算法Reed-Solomon,6,3中表示数据块和奇偶校验块的数量,1024k表示条带化单元的大小
    目录上还支持默认的REPLICSTION方案。它只能在目录上设置,以强制目录采用3倍复制方案,而不是继承器族乡的纠缠吗策略。此策略可以是3x复制方案目录与纠错码目录交错。REPLICSTION始终处于穷状态
    此外也支持用户通过XML文件定义自己的EC策略,Hadoop conf目录中有一个名为uers_ec_policies.xml.template的示例EC策略XML文件,用户可以参考该文件
  • Inter ISA-L
    英特尔ISA-L代表英特尔智能存储加速库。isa-l是针对存储应用程序而优化的低级功能开源集合。它包括针对Intel AVX和AVX2指令优化的快速块Reed- Solomon类型擦除代码。HDFS纠删码可以利用ISA-L加速编码和加码计算
相关推荐
白鲸开源19 小时前
实战干货:Apache DolphinScheduler 参数使用与优化总结
大数据·程序员·开源
yumgpkpm20 小时前
CMP(类Cloudera CDP 7.3 404版华为Kunpeng)与其他大数据平台对比
大数据·hive·hadoop·elasticsearch·kafka·hbase·cloudera
JZC_xiaozhong20 小时前
跨系统流程如何打通?选 BPM 平台认准这三点
大数据·运维·自动化·数据集成与应用集成·业务流程管理·流程设计可视化·流程监控
中科岩创20 小时前
某地公园桥梁自动化监测服务项目
大数据·人工智能·物联网·自动化
希赛网21 小时前
2025年第四期DAMA数据治理CDGA考试练习题
大数据·cdga·cdgp·dama·数据治理·题库
keep__go1 天前
zookeeper单机版安装
大数据·运维·zookeeper
Serverless 社区1 天前
助力企业构建 AI 原生应用,函数计算FunctionAI 重塑模型服务与 Agent 全栈生态
大数据·人工智能
武子康1 天前
大数据-150 Apache Druid 单机部署实战:架构速览、启动清单与故障速修
大数据·后端·apache
ApacheSeaTunnel1 天前
结项报告完整版 | Apache SeaTunnel支持metalake开发
大数据·开源·数据集成·seatunnel·数据同步
白鲸开源1 天前
结项报告完整版:Apache SeaTunnel 支持 Flink 引擎 Schema Evolution 功能
大数据·flink·开源