目录:

1.  背景

2. 纠删码(Erasure Coding)介绍

3. 纠删码(Erasure Coding)原理

4. 总结

一. 背景

随着大数据技术的发展,HDFS作为Hadoop的核心模块之一得到了广泛的应用。为了系统的可靠性,HDFS通过复制来实现这种机制。但在HDFS中每一份数据都有两个副本,这也使得存储利用率仅为1/3,每TB数据都需要占用3TB的存储空间。随着数据量的增长,复制的代价也变得越来越明显:传统的3份复制相当于增加了200%的存储开销,给存储空间和网络带宽带来了很大的压力。因此,在保证可靠性的前提下如何提高存储利用率已成为当前HDFS应用的主要问题之一

二. 纠删码(Erasure Coding)

  针对这些问题,英特尔、Cloudera、华为以及其他的Apache Hadoop communit共同参与开始引入纠删码(Erasure Coding,EC)技术,在保证数据可靠性的同时大幅降低存储开销。相关代码已经在3.0版本中发布。

  Erasure coding纠删码技术简称EC,是一种数据保护技术。最早用于通信行业中数据传输中的数据恢复,是一种编码容错技术。他通过在原始数据中加入新的校验数据,使得各个部分的数据产生关联性。在一定范围的数据出错情况下,通过纠删码技术都可以进行恢复。

三. 原理分析:

3.1 纠删码(Erasure Code)与 Reed Solomon码

在存储系统中,纠删码技术主要是通过利用纠删码算法将原始的数据进行编码得到校验,并将数据和校验一并存储起来,以达到容错的目的。其基本思想是将k块原始的数据元素通过一定的编码计算,得到m块校验元素。对于这k+m块元素,当其中任意的m块元素出错(包括数据和校验出错),均可以通过对应的重构算法恢复出原来的k块数据。生成校验的过程被成为编码(encoding),恢复丢失数据块的过程被称为解码(decoding)。

  Reed-Solomon(RS)码是存储系统较为常用的一种纠删码,它有两个参数k和m,记为RS(k,m)。如图1所示,k个数据块组成一个向量被乘上一个生成矩阵(Generator Matrix)GT从而得到一个码字(codeword)向量,该向量由k个数据块和m个校验块构成。如果一个数据块丢失,可以用(GT)-1乘以码字向量来恢复出丢失的数据块。RS(k,m)最多可容忍m个块(包括数据块和校验块)丢失。

Hdfs EC策略默认使用RS-6-3-1024k。默认是不开启使用,需要通过hdfs ec子命令来进行设置以及其他管理。

3.2 块组(BlockGroup)

对HDFS的一个普通文件来说,构成它的基本单位是块。对于EC模式下的文件,构成它的基本单位为块组。块组由一定数目的数据块加上生成的校验块放一起构成。以RS(6,3)为例,每一个块组包含1-6个数据块,以及3个校验块。进行EC编码的前提是每个块的长度一致。如果不一致,则应填充0。图2给出三种不同类型的块组及其编码。

3.3 连续布局(Contiguous Layout) VS 条形布局(Striping Layout)

数据被依次写入一个块中,一个块写满之后再写入下一个块,数据的这种分布方式被称为连续布局。在一些分布式文件系统如QFS和Ceph中,广泛使用另外一种布局:条形布局。条(stripe)是由若干个相同大小单元(cell)构成的序列。在条形布局下,数据被依次写入条的各个单元中,当条被写满之后就写入下一个条,一个条的不同单元位于不同的数据块中。

  用户可以读写一个条形布局(Striping Layout)的文件;如果该文件的一个块丢失,后台能够检查出并恢复;如果在读的过程中发现数据丢失,能够立即解码出丢失的数据从而不影响读操作。参考:(HDFS-7285)  Erasure Coding Support inside HDFS

四. 总结

Erasure Coding技术的优劣势:

优势

  纠删码技术作为一门数据保护技术,自然有许多的优势,首先可以解决的就是目前分布式系统,云计算中采用副本来防止数据的丢失。副本机制确实可以解决数据丢失的问题,但是翻倍的数据存储空间也必然要被消耗,这一点却是非常致命的。EC技术的运用就可以直接解决这个问题。

劣势

  EC技术的优势确实明显,但是他的使用也是需要一些代价的,一旦数据需要恢复,他会造成2大资源的消耗:

  1、网络带宽的消耗,因为数据恢复需要去读其他的数据块和校验块
  2、进行编码,解码计算需要消耗CPU资源

  概况来讲一句话,就是既耗网络又耗CPU,看来代价也不小。所以这么来看,将此计数用于线上服务可能会觉得不够稳定,所以最好的选择是用于冷数据集群,有下面2点原因可以支持这种选择

  1、冷数据集群往往有大量的长期没有被访问的数据,体量确实很大,采用EC技术,可以大大减少副本数
  2、冷数据集群基本稳定,耗资源量少,所以一旦进行数据恢复,将不会对集群造成大的影响

出于上述2种原因,冷数据集群无非是一个很好的选择。

原文地址:https://www.iteblog.com/archives/1684.html

Hadoop 3.0纠删码简单调研相关推荐

  1. Hadoop 3.0 纠删码技术分析(Erasure Coding)

    背景 随着大数据技术的发展,HDFS作为Hadoop的核心模块之一得到了广泛的应用.为了数据的可靠性,HDFS通过多副本机制来保证.在HDFS中的每一份数据都有两个副本,1TB的原始数据需要占用3TB ...

  2. Hadoop 3.0 Erasure Coding 纠删码功能预分析

    前言 HDFS也可以支持Erasure Coding功能了,将会在Hadoop 3.0中发布,可以凭图为证: 在HDFS-7285中,实现了这个新功能.鉴于此功能还远没有到发布的阶段,可能后面此块相关 ...

  3. Hadoop3.0时代,怎么能不懂EC技术纠删码? 个推为你解读

    根据云存储服务商Backblaze发布的2021年硬盘"质量报告",现有存储硬件设备的可靠性无法完全保证,我们需要在软件层面通过一些机制来实现可靠存储.一个分布式软件的常用设计原则 ...

  4. Hadoop hdfs副本存储和纠删码(Erasure Coding)存储优缺点

    The advantages and disadvantages of hadoop hdfs replicating storage and erasure coding storage. Hado ...

  5. 纠删码项目总结(1.0)

    1. 为什么要使用纠删码? 随着数据的持续增长,在 PB 级别的数据中心,多副本技术会引入极大的存 储开销.比如,现有的分布式存储系统,如 HDFS(Hadoop distributed file s ...

  6. Hadoop纠删码算法启用ISA-L加速库

    在前文HDFS纠删码(Erasure Coding)一文中提到,HDFS启用ISA-L存储加速库,有有助于提升HDFS纠删码的编码和解码效率. 版本说明如下: 软件 版本 Hadoop 3.1.0 i ...

  7. 【hadoop】纠删码技术详解

    1 纠删码背景 随着大数据技术的发展,HDFS作为Hadoop的核心模块之一得到了广泛的应用.为了数据的可靠性,HDFS通过多副本机制来保证.在HDFS中的每一份数据都有两个副本,1TB的原始数据需要 ...

  8. 分布式系统下的纠删码技术(一) -- Erasure Code (EC)

    近几个月主要参与一个分布式存储系统的纠删码部分(用于数据容错),纠删码在学术界出现比较早,现在ceph,微软的存储系统,Hadoop 3.0等都用了EC.文章会分为多篇,主要将Erasure Code ...

  9. 纠删码存储系统中的投机性部分写技术

    本文已被USENIX'17年度技术大会录用,此处为中文简译版. 阅读英文论文完整版请点击:Speculative Partial Writes in Erasure-Coded Systems 多副本 ...

最新文章

  1. Oracle基于Linux平台的虚拟化与云计算战略
  2. 十年磨一剑!阿里OceanBase创纪录卫冕,中国数据库从此告别卡脖子
  3. android网页打开摄像头,在android上,用WEB页面打开手机摄像头
  4. python raise 引起的异常
  5. 200 计算机网络之物理层思维导图小结
  6. Win8 Metro(C#)数字图像处理--2.35图像肤色检测算法
  7. Angular之组件的创建
  8. spring boot高性能实现二维码扫码登录(上)——单服务器版
  9. linux 建立vnc,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  10. Linux 添加中文字体库
  11. matlab积分超过最大值,MATLAB 定积分上限是变量a,如何求解目标函数关于变量a的最大值?谢谢...
  12. matlab中利用xy求取多项式z,matlab基础练习题
  13. 一篇标准的审稿意见回复(Response to reviewer)是什么样的?
  14. project2010根据法定节假日更改工作时间
  15. 电子技术——反馈对放大器极点的影响
  16. MATLAB读取高光谱数据
  17. 使用 Redux Toolkit 和 RTK 查询创建 React 应用程序
  18. UVALive 4513 Stammering Aliens
  19. 阿里ESAM:用迁移学习解决召回中的样本偏差
  20. wifi路由器中的WPS功能

热门文章

  1. 【前端框架学习】字符串的padStart方法法使用
  2. LaTeX如何正确输入引号:双引号“”单引号‘’
  3. 【附源码】计算机毕业设计SSM校园爱心志愿系统
  4. 腾讯云联合中国信通院作业帮等首发《降本之源-云原生成本管理白皮书》
  5. TCN论文及代码解读总结
  6. 一稿多投合法吗?你支持吗?
  7. 开发笔记 那些年追过的图片(三):自定义修改拍照界面retake和use按钮
  8. Python镜像资源下载
  9. 【Vue框架】Vue绑定样式及案例之行内样式——对象绑定样式与数组控制样式(附带源码案例)
  10. java入门自学书籍,HR的话扎心了