当前位置: 首页 > news >正文

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

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

  • 三副本策略弊端
  • Erasure Coding(EC)简介
    • 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加速编码和加码计算
http://www.lryc.cn/news/108078.html

相关文章:

  • STM32 DHT11
  • 词法分析器
  • 【Spring】Spring之启动过程源码解析
  • 状态模式(State)
  • 【uniapp】样式合集
  • 【Spring框架】SpringBoot统一功能处理
  • 51单片机学习--按键控制流水灯模式定时器时钟
  • Django教程_编程入门自学教程_菜鸟教程-免费教程分享
  • VGG卷积神经网络-笔记
  • Python爬虫如何实现IP代理池搭建
  • 单例模式:保证一个类只有一个实例
  • 【新版系统架构补充】-七层模型
  • 第2章 C语言概述
  • vscode vue3开发常用插件(附Prettier格式化配置)
  • 【微信小程序】van-uploader实现文件上传
  • 人工智能在计算机视觉中的应用与挑战
  • 以太网接口指示灯状态分析和电路设计
  • Redis的基础
  • LeetCode 626. 换座位
  • 华为、阿里巴巴、字节跳动 100+ Python 面试问题总结(六)
  • hash 模式和 history 模式的实现原理
  • 并发编程Part 2
  • springboot异步多线程的实现
  • 测试相关基础概念与常见开发模型
  • MySQL安装详细教程!!!
  • 前端下载文化部几种方法(excel,zip,html,markdown、图片等等)和导出 zip 压缩包
  • 铠甲网络面试(部分)
  • elasticsearch 将时间类型为时间戳保存格式的时间字段格式化返回
  • 淘宝商品列表怎么通过接口形式导出?
  • TWS真无线蓝牙耳机哪家好?六款口碑好的TWS真无线蓝牙耳机分享