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.hqwc.cn/news/53382.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索Streamlit中强大而灵活的 st.write() 函数(五):构建丰富多样的应用界面

文章目录 1 前言2 显示HTML的内容3 显示Markdown内容4 显示代码块5 显示DataFrame的交互式表格6 显示音频和视频7 显示图表8 显示图片9 显示地图10 显示PDF文件11 显示文件下载链接12 结语 1 前言 在这篇博文中,我们将着重介绍Streamlit中一个核心而重要的函数&…

hcip——期中小试

要求: 1、该拓扑为公司网络,其中包括公司总部、公司分部以及公司骨干网,不包含运营商公网部分。 2 、设备名称均使用拓扑上名称改名,并且区分大小写。 3 、整张拓扑均使用私网地址进行配置。 4 、整张网络中,运行 O…

使用 Simulink 进行 STM32 编程

目录 介绍 所需材料 步骤 1:在MATLAB中设置STM32-MAT软件路径步骤 2:在STM32CubeMX中创建一个项目步骤 3:配置时钟和 GPIO 引脚步骤 4:项目经理并生成代码步骤 5:在 Simulink 中创建模型步骤 6:在模型中插…

pytorch学习——正则化技术——丢弃法(dropout)

一、概念介绍 在多层感知机(MLP)中,丢弃法(Dropout)是一种常用的正则化技术,旨在防止过拟合。(效果一般比前面的权重衰退好) 在丢弃法中,随机选择一部分神经元并将其输出…

复制带随机指针的链表【构造链表深拷贝】

复制带随机指针的链表 文章目录 复制带随机指针的链表 链表复制要求 解题思路 1、拷贝所有节点,并放在对应原节点的后面 2.将每个 random 指向对应的位置。 3.将复制的链表解下来,尾插到一起,并将原链表恢复 源码 先导知识点&#…

MyBatis关联查询

文章目录 前言多对一关联 association一对多关联 collection 前言 提示:这里可以添加本文要记录的大概内容: 关联查询是指在一个查询中同时获取多个表中的数据,将它们结合在一起进行展示。 关联表需要两个及以上的表 数据库代码&#xff1…

深入理解负载均衡原理及算法

1. 前言 在互联网早期,网络还不是很发达,上网用户少,流量相对较小,系统架构以单体架构为主。但如今在互联网发达的今天,流量请求动辄百亿、甚至上千亿,单台服务器或者实例已完全不能满足需求,这就有了集群。不论是为了实现高可用还是高性能,都需要用到多台机器来扩展服…

如何安装、部署、启动Jenkins

一、测试环境 Linux系统 Centos 7 二、安装步骤: 1、安装jdk 我安装的是jdk8,此处就不多说了,自己百度哈,很简单 2、安装jenkins 首先依次执行如下三个命令: 2.1、导入镜像: [rootcentos7 ~]# sudo …

目标检测中的IOU

IOU 什么是IOU?IOU应用场景写代码调试什么是IOU? 简单来说IOU就是用来度量目标检测中预测框与真实框的重叠程度。在图像分类中,有一个明确的指标准确率来衡量模型分类模型的好坏。其公式为: 这个公式显然不适合在在目标检测中使用。我们知道目标检测中都是用一个矩形框住…

测试人员简单使用Jenkins

一、测试人员使用jenkins干什么? 部署测试环境 二、相关配置说明 一般由开发人员进行具体配置 1.Repository URL:填写git地址 2.填写开发分支,测试人员可通过相应分支进行测试环境的构建部署 当多个版本并行时,开发人员可以通过…

嵌入式开发学习(STC51-9-led点阵)

内容 点亮一个点; 显示数字; 显示图像; LED点阵简介 LED 点阵是由发光二极管排列组成的显示器件 通常应用较多的是8 * 8点阵,然后使用多个8 * 8点阵可组成不同分辨率的LED点阵显示屏,比如16 * 16点阵可以使用4个8 *…

MySQL常见问题处理(三)

MySQL 常见问题解决 夕阳留恋的不是黄昏,而是朝阳 上一章简单介绍了MySQL数据库安装(二), 如果没有看过, 请观看上一章 一. root 用户密码忘记,进行重置操作 复制内容来源链接: https://blog.csdn.net/weixin_48927364/article/details/123556927 一.…