设为首页 加入收藏

TOP

HDFS_纠删码技术
2019-04-22 00:20:54 】 浏览:46
Tags:HDFS_ 技术
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Regan_Hoo/article/details/78586342
  1. 纠删码技术的含义

    (HDFS EC——Hadoop Erasure Coding)通过在原始数据中加入新的校验数据,使得各个部分的数据产生关联性。在一定范围的数据出错情况下,通过纠删码技术都可以进行恢复。

  2. 纠删码技术的原理

    这里写图片描述

    把一行数据块组称为条带(strip),每行条带由n个数据块和m个校验块组成:

    ① 如果校验数据块发生错误,通过对原始数据块进行编码重新生成
    
    ② 如果原始数据块发生错误,通过校验数据块的解码可以重新生成
    

    原理:将上面的图片看成矩阵,由于矩阵的可逆性,就能进行数据恢复。

    这里写图片描述

  3. 纠删码技术的作用

    ① 存储空间的节省。

    ② 宽带流量的节省。EC的使用,会使得写入集群的数据总量减少,进一步为集群节省了宽带的消耗。但在做数据恢复的时候会比较耗费宽带,因为它会从其他多个节点中读取数据进行恢复。

    在Hadoop EC的设计文档中,提出了以下几点实现目标:

    1)存储空间的节省

    2)灵活的存储策略,用户同样能够标记文件为HOT或COLD存储类型

    3)快速的恢复与转换,同时在数据恢复的时候,需要尽可能减少网络带宽的使用

    4)IO带宽的节省

    5)NameNode低负载。EC技术在一定出程度上会增大NameNode的开销。因为NameNode需要额外跟踪校验块的信息。在EC的实现过程中,需要尽可能降低NameNode的负载

    6)对于用户的透明性、兼容性。EC在Hadoop中的实现细节,需要保证对用户的绝对透明。而且用户可以在EC策略下正常使用其他功能,例如HDFS快照、HDFS缓存、加密空间等

    另外,EC将改变原来Hadoop默认的三副本策略,而副本数的减少会对MR任务的数据本地性造成一定影响。

  4. 纠删码技术的实现

    EC概念指的是数据块(data block)、检验块(parity block)、条带(stripe)等概念。HDFS对这些概念的定义如下:

    ① 数据块、检验块在HDFS中的体现就是普通的数据块

    ② 条带的概念需要将每个块进行分裂,每个块由若干个相同大小的单元(cell)组成,每个条带由一行单元构成,相当于从所有的数据块和校验块中抽取出了一行

    改进优化点:

    ① 目前数据没有采用本地读的方式,一律采用远程方式进行数据读取

    ② 目标数据的恢复传输并不返回数据包的确认码,不像Pipeline那样有很健全的一套体系

  5. 纠删码技术的优劣势

    优势:

    可以解决目前分布式系统、云计算中采用多副本机制来防止数据丢失的问题。

    劣势:

    一旦数据需要恢复,会造成两大资源的消耗——>

    ① 网络带宽的消耗,因为数据恢复需要去读取其他的数据块和校验块

    ② 进行编码、解码计算时需要消耗CPU资源

    概括来讲,就是既消耗网络又耗CPU。因此,最好的选择是用于冷数据的存储,因为:

    ① 冷数据集群往往有大量的长期没有被访问的数据,数据规模确实会比较大,采用EC技术,可以大大减少副本数

    ② 冷数据集群基本稳定,耗资源量少,所以一旦进行数据恢复,也将不会对集群造成大的影响

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇(2)Hadoop重新格式化HDFS的方法 下一篇HDFS的namenode如何进行主备切换

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目