Hadoop 3.x版本增添特性--纠删码介绍

    在hadoop 3.0版本中增添了一些新的特性,比如NameNode联邦,纠删码,yarn时间线服务等。纠删码可以将HDFS的存储开销降低约50%,同时与三分本策略一样,还可以保证数据的可用性。更准确的说是纠删码是一种比副本存储更节省存储空间的数据持久化存储方法。比如Reed-Solomon(10,4)标准编码技术只需要1.4倍的空间开销,而标准的HDFS副本技术则需要3倍的空间开销。由于纠删码额外开销主要用于重建远程读写,它通常用来存储不经常使用的数据(冷数据)。另外,在使用这个新特性时,用户还需要考虑网络和CPU开销。Hadoop 2.x可以通过复制(浪费空间)来处理容错,Hadoop 3.x可以通过Erasure编码处理容错。

    默认情况下,HDFS的数据块都会保存三个副本。副本提供了一种简单而健壮的冗余方式来最大化保证数据的可用性。数据的多副本同时可以尽量保证计算任务的本地化。但副本方式成本是较高的:默认情况下三副本方式会在存储空间或其他资源(比如写入数据时的网络带宽)中产生200%的开销。对于较少访问的数据集(对集群的I/O影响相对不大),它们的第二个或者第三个副本会比较少访问,但是仍会消耗相同的存储空间。

    面对上述描述的情况,可以使用纠删码(ErasureCoding)来代替多副本的方式,它使用更少的存储却可以保证相同级别的容错。在典型配置下,与三副本方式相比,EC可以将存储成本降低约50%。基于这个考虑,Cloudera与Intel的工程师在HDFS-7285(https://issues.apache.org/jira/browse/HDFS-7285)下启动并推动了HDFS-EC项目。目前HDFS-EC已经在CDH6和HDP3中发布。

 

纠删码技术的优劣势:

  • 优势

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

 

  • 劣势

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

 

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

2.进行编码,解码计算需要消耗CPU资源

 

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

 

1.冷数据集群往往有大量的长期没有被访问的数据,体量确实很大,采用EC技术,可以大大减少副本数

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

 

出于上述2种原因,冷数据(集群)无疑是一个很好的选择。当然如果采购的硬件支持Intel CPU的ISA-L,使用其实也是不错的,毕竟比三副本的方式还优秀!

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

      用人品去感动别人,用改变去影响别人,用状态去燃烧别人,用行动去带动别人,用阳光去照耀别人,用坚持去赢得别人,要求自己每天都去做与目标有关的事情,哪怕每天只进步一点点,坚持下来你就是最优秀卓越的!欢迎大家加入大数据交流群:725967421     一起交流,一起进步!!

--------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------- 
 

你可能感兴趣的:(hadoop篇)