使用usc版本的Hadoop,该版本基于包含Facebook实现的HDFS-RAID的Hadoop。
本项目开发的分支是ourCodec
##意义简述 数据冗余
HDFS是Hadoop生态的存储基础设施,由于Hadoop部署在廉价通用计算机上,数据丢失时常发生。为了保证系统的可靠性,人们引入了冗余。 HDFS中默认的冗余机制是3份拷贝,即每一份数据存储3份,并分散在不同的机器上。这种方式简单又实用,被广泛应用。
冗余VS编码
虽然拷贝机制简单,数据恢复也足够方便,但是也带来了巨大的存储开销,提高了存储成本。因此存储编码被引入以在保证可靠性的同时 减少冗余,降低存储成本。最经典的存储编码就是纠删码,它将n份数据编码为k份冗余数据(k<n),并且具有优秀的MDS性质(n+k份数据中的任意 k份数据损坏均能通过其他n份数据修复出全部的数据)。纠删码能有效降低冗余,为企业省去大笔存储开销。最典型的应用例子就是Facebook开发 并应用的HDFS-RAID
冗余VS带宽
纠删码确实降低了数据冗余,但是也带来了新的问题。修复一份数据就需要从其他节点下载n份数据,占用带宽较大,相比拷贝机制的1份下载量, 纠删码冗余机制的修复效率很低。为了优化纠删码的修复带宽消耗较大的问题,人们提出了再生码和局部修复码的概念。关于这两种编码的相 关知识请参见相关论文,此处不再赘述。本项目就基于HDFS-RAID实现了几种局部修复方案和一种最佳I/O方案。这几种方案具有较高的修复速度 和优秀的冗余比例与带宽消耗。
author:李文杰、李枫宸