HDFS中的Erasure Coding纠删码是个什么样的存在?

一、什么是纠错码

提起纠错码就有必要提起HDFS中多副本策略。在多副本策略下,HDFS中储存文件,要存储三份相同文件,如果当前文件出现丢失,可以通过其他副本进行复制,恢复回来。但是磁盘的利用率不高,仅为1/3。
在Hadoop3.x之后就引入了纠删码技术(Erasure Coding)
纠删码技术(Erasure coding)简称EC,是一种编码容错技术。最早用于通信行业,数据传输中的数据恢复。它通过对数据进行分块,然后计算出校验数据,使得各个部分的数据产生关联性。当一部分数据块丢失时,可以通过剩余的数据块和校验块计算出丢失的数据块。

二、纠错码优缺点

优点

1.客户端缓存数据较少;
2.无论文件大小都适用;

缺点

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

三、纠删码策略

RS-3-2-1024k:每组数据包含3个数据块和2个校验块,一共5个块,存储使用效率3/5=60%,一个集群最小datanode数量为5,可允许2个datanode同时离线不影响应用访问数据;
RS-6-3-1024k:每组数据包含6个数据块和3个校验块,一共9个块,存储使用效率6/9=67%,一个集群最小datanode数量为9,可允许3个datanode同时离线不影响应用访问数据;
RS-10-4-1024k:每组数据包含10个数据块和4个校验块,一共14个块,存储使用效率10/14=71%,一个集群最小datanode数量为14,可允许4个datanode同时离线不影响应用访问数据;

你可能感兴趣的:(HDFS中的Erasure Coding纠删码是个什么样的存在?)