1 纠删码背景

随着大数据技术的发展,HDFS作为Hadoop的核心模块之一得到了广泛的应用。为了数据的可靠性,HDFS通过多副本机制来保证。在HDFS中的每一份数据都有两个副本,1TB的原始数据需要占用3TB的磁盘空间,存储利用率只有1/3。而且系统中大部分是使用频率非常低的冷数据,却和热数据一样存储3个副本,给存储空间和网络带宽带来了很大的压力。因此,在保证可靠性的前提下如何提高存储利用率已成为当前HDFS面对的主要问题之一。Hadoop 3.0引入了纠删码技术(Erasure Coding),它可以提高50%以上的存储利用率,并且保证数据的可靠性。

2 纠删码简介

纠删码(Erasure Code)本身是一种编码容错技术,最早是在通信行业解决部分数据在传输中损耗的问题,它的基本原理是把传输的信号分段,加入一定的校验再让各段间发生一定的联系,即使在传输过程中丢失掉部分信号,接收端仍然能通过算法把完整的信息计算出来。Erasure Code适时出现,以更低成本和更高技术含量提供了较强的可靠性,就吸引到了众多分布式存储/云存储的厂商和用户。

3 纠删码原理

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

4 举例

我们有 7、8、9 三个原始数据,通过与生成矩阵相乘,计算出最终的纠删码。这时原始数据加上校验数据,一共五个数据:7、8、9、50、122,可以任意丢两个,然后通过算法进行恢复。

前面介绍了纠删码parity位的计算过程,由于单位矩阵乘以另外一个矩阵等于矩阵本身,所以data位就是数据本身。矩阵B为最终存储到磁盘的数据。如下所示:

矩阵B中第2行和第5行数据块丢失,需要将GT矩阵对应的第2行和第5行删除,再通过删除后的GT矩阵计算出丢失的数据


根据公式,矩阵乘以该矩阵的逆矩阵等于单位矩阵,单位矩阵乘以任何矩阵等于矩阵本身。根据这个性质,可以通过等式两边同时乘以GT的逆矩阵算出真实的数据。

【hadoop】纠删码技术详解相关推荐

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

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

  2. 全网最新最全的 HDFS 文件纠删码技术分析

    前言 本文隶属于专栏<1000个问题搞定大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技 ...

  3. 《Hadoop海量数据处理:技术详解与项目实战(第2版)》一2.8 小结

    本节书摘来异步社区<Hadoop海量数据处理:技术详解与项目实战(第2版)>一书中的第2章,第2.8节,作者: 范东来 责编: 杨海玲,更多章节内容可以访问云栖社区"异步社区&q ...

  4. 《Hadoop海量数据处理:技术详解与项目实战(第2版)》一第2章 环境准备

    本节书摘来异步社区<Hadoop海量数据处理:技术详解与项目实战(第2版)>一书中的第2章,第2.1节,作者: 范东来 责编: 杨海玲,更多章节内容可以访问云栖社区"异步社区&q ...

  5. 【海云捷迅云课堂】分布式存储系统纠删码技术分享

    云课堂专题 海云捷迅云课堂专题,旨在秉承开源理念,为大家提供OpenStack技术原理与实践经验,该专题文章均由海云捷迅工程师理论与实践相结合总结而成,如大家有其他想要了解的信息,可留言给我们,我们会 ...

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

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

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

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

  8. 重磅直播|结构光之相移法+格雷码技术详解

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

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

最新文章

  1. PHP如何把三张图片均匀分布,怎么把一张图片分成9张
  2. mybatis 使用in 查询时报错_使用mybatis的resultMap进行复杂查询 057
  3. ASP.NET MVC 环境配置,从1.0到2.0的转换和学习资源等
  4. php换设备登录逻辑,登录和退出登录的操作逻辑
  5. python pycharm打包_【转】通过PyCharm 把Python 程序打包为exe
  6. 新建MVC项目与发布
  7. 五万字整理Mybatis 入门只需要一篇文章
  8. 为什么大家都说 SELECT * 效率低
  9. Java疯狂讲义第五章笔记
  10. 松下FPX通用通信编程实例
  11. excel两列数据对比找不同_Excel找出不同数据
  12. Vue - $route matched 属性实现面包屑导航
  13. github pages + Hexo + 域名绑定搭建个人博客增强版
  14. PC上测试移动端网站和模拟手机浏览器
  15. 图表Chart.js入门教程
  16. Linux-查看进程
  17. Linux---冯诺依曼体系结构和操作系统
  18. 如何记住OSI七层协议模型,脑洞大开有木有?
  19. Linux命令·chgrp·chown
  20. unique中译_unique是什么意思_ unique的翻译_音标_读音_用法_例句_爱词霸在线词典...

热门文章

  1. vue-cli · Failed to download解决方案
  2. 数据挖掘和数据分析之数据中位数和众数
  3. 题解报告——寿司晚宴
  4. kotlin的文件操作(仅包含最简单的读写)
  5. 网站与APP中的版式设计、色彩搭配和创意思维-CSDN就业班-专题视频课程
  6. 安卓热更新之Nuwa实现步骤
  7. 我的全栈之路-Python基础之Python概述与开发环境搭建
  8. 字号、pt、px、em换算对照表
  9. 常州大学/企业微信/电费查询脚本
  10. 【Open3d】使用open3d可视化