深入剖析 HDFS 3.x 新特性
过条带化技术实现 EC,条带化技术就是一种自动将 I/O 的负载均衡到多个物理磁盘上的技术,原理就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去,这就能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突(当多个进程同时访问一个磁盘时,可能会出现磁盘冲突),而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的 I/O 并行能力,从而获得非常好的性能。 在HDFS中,把连续的数据分成很多的小部分称为条带化单元,对于原始数据单元的每个条带单元,都会计算并存储一定数量的奇偶检验单元,计算的过程称为编码,可以通过基于剩余数据和奇偶校验单元的解码计算来恢复任何条带化单元上的错误。 2. HDFS数据冗余存储策略 HDFS的存储策略是副本机制,这种存储方式使得数据存储的安全性得到提高,但同时也带来了额外的开销,HDFS默认的3副本方案在存储空间和其他资源(如网络带宽)上有200%的额外开销,但是对于I/O活动相对较低的数据,在正常期间很少访问其他块副本,但是仍然消耗与第一个副本相同的资源量。 因此,HDFS 3.x 版本一个重大改进就是使用纠删码(EC)代替副本机制,纠删码技术提供了与副本机制相同的容错能力,而存储空间却少得多。在典型的纠删码(EC)设置中,存储开销不超过50%。 3. EC算法实现原理 EC的实现算法有很多种,较为常见的一种算法是Reed-Solomon(RS),它有两个参数,记为RS(k,m),k 表示数据块,m 表示校验块,有多少个校验块就最多可容忍多少个块(包括数据块和校验块)丢失,具体原理通过如下例子解释: 我们使用RS(3,2),表示使用 3 个原始数据块,2 个校验块。
例:由RS(3,2) 可求出它的生成矩阵 GT,和 7、8、9 三个原始数据块 Data,通过矩阵乘法,计算出来两个校验数据块 50、122。这时原始数据加上校验数据,一共五个数据块:7、8、9、50、122,可以任意丢两个,然后通过算法进行恢复 (编辑:我爱制作网_潮州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |