HDFS纠删码机制的优化研究
发布时间:2020-07-01 13:43
【摘要】:随着数据量的不断增长,存储成本也成倍增加,对存储系统的经济性提出了更高的要求,尤其是大型分布式存储系统。作为最为广泛使用的分布式存储系统之一,HDFS在最新的3.0版本中开始支持纠删码机制,这极大地降低了存储成本,但是受限于纠删码本身的特性,与传统的三副本技术相比,纠删码机制在进行故障恢复时需要占用更多的计算机资源,恢复时间更长,这在大型分布式系统中表现的尤为明显。HDFS应用的纠删码技术,主要采用的是里德-所罗门码(RS),该编码在进行数据恢复时,需要从其他节点读取大量数据块。与此同时,HDFS在选择恢复所需的数据块时主要使用随机算法,这导致了纠删码在读取等量的数据时将浪费更多的时间。本文将从减少所需要读取的数据块的数量和优化其块选择算法两个角度,对HDFS的纠删码机制进行一定优化,降低恢复时间,提高恢复效率。本文首先对HDFS中现有的纠删码机制进行了深入的分析,通过对比实验的方式,从资源开销、恢复时间等多个角度,对纠删码机制与传统的三副本机制进行对比研究。接着,本文基于Piggybacking编码框架对HDFS采用的RS编码进行了优化设计和实现,用更细粒度的条带组代替原先恢复时的单条带,通过附加信息,有效地减少故障恢复所需的数据块数量,从而减少读取时间,降低恢复的时间成本。然后,本文提出了基于距离的块选择算法和基于负载均衡的块选择算法。对于基于距离的块选择算法,通过对机架间带宽和节点间距离关系的分析,将减少机架间带宽占用问题转化为选取距离最近点问题,提出按照节点距离远近选取辅助节点的算法,有效减少了机架间带宽传输,提高了传输的平均带宽;对于基于负载均衡的块选择算法,通过对数据节点运行状态的分析,建立了一个节点运行状态权重模型,根据各节点的权重值选择辅助节点,确保选到的节点负载相对较轻,降低由于节点状态变化导致数据请求无法及时得到响应的情况发生的概率,提高恢复成功率。所以,可以根据自身需求选择其中一种使用。最后,将修改完成的Hadoop程序与未进行修改的Hadoop程序分别部署到集群上。结合各种负载和基准测试用例,通过改变文件大小、节点配置等方式,进行对比实验。实验结果表明本文提出的优化算法确实能够提高HDFS纠删码机制的性能,减少故障恢复时间。
【学位授予单位】:哈尔滨工业大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP333
【图文】:
在其中分配足够的数据块,在块组类的 iNodefile 中存储有该文件所采用的编码方式。这样才能够将文件并行地写入到各个数据块中。块组中的数据块 ID 也与原先的数据块 ID 生成方式不同。(2)纠删码机制系统架构HDFS 纠删码机制的整体架构如图 2-4 所示[11]。首先,在 NameNode 中引入了 ECManager 类,这个类主要负责管理块组,包含块组的分配,块地址的选择,块组健康度的监测以及坏块恢复工作时节点间相互协作。在 DataNode 端加入了 ECWorker 类。正常情况下,DataNode 不会进纠删码操作。这个类会创建一个守护进程,监听来自于 NameNode 的 ECManager 的命令,包含传输命令和恢复命令。它主要负责将数据传输到相应的数据节点上,同时对这些数据进行编解码计算,失效块恢复等操作。在每一次的操作中,首先由 ECManager发起,告诉 ECWoker 所采用的纠删码策略,然后由 ECWorker 去完成剩下来的操作。最后 ECClient 完成了对 HDFS 客户端的扩展,实现了将数据分成小的条带单元并行存储到各个 DataNode 当中去,或者将多个 DataNode 中的条带单元读取出来。该框架还允许使用者自己配置所要使用的纠删码策略以及块组的布局方式。
写入测试
【学位授予单位】:哈尔滨工业大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP333
【图文】:
在其中分配足够的数据块,在块组类的 iNodefile 中存储有该文件所采用的编码方式。这样才能够将文件并行地写入到各个数据块中。块组中的数据块 ID 也与原先的数据块 ID 生成方式不同。(2)纠删码机制系统架构HDFS 纠删码机制的整体架构如图 2-4 所示[11]。首先,在 NameNode 中引入了 ECManager 类,这个类主要负责管理块组,包含块组的分配,块地址的选择,块组健康度的监测以及坏块恢复工作时节点间相互协作。在 DataNode 端加入了 ECWorker 类。正常情况下,DataNode 不会进纠删码操作。这个类会创建一个守护进程,监听来自于 NameNode 的 ECManager 的命令,包含传输命令和恢复命令。它主要负责将数据传输到相应的数据节点上,同时对这些数据进行编解码计算,失效块恢复等操作。在每一次的操作中,首先由 ECManager发起,告诉 ECWoker 所采用的纠删码策略,然后由 ECWorker 去完成剩下来的操作。最后 ECClient 完成了对 HDFS 客户端的扩展,实现了将数据分成小的条带单元并行存储到各个 DataNode 当中去,或者将多个 DataNode 中的条带单元读取出来。该框架还允许使用者自己配置所要使用的纠删码策略以及块组的布局方式。
写入测试
【参考文献】
相关期刊论文 前6条
1 李挥;张宇蒙;陈俊;;大数据环境下的可靠存储技术思考[J];中兴通讯技术;2015年05期
2 卞艺杰;马瑞敏;李亚冰;吴慧;;基于纠删码的HDFS存储方案[J];计算机系统应用;2014年11期
3 黄显霞;李挥;张宇蒙;侯韩旭;周泰;郭涵;张华宇;;基于二元再生码的大数据存储系统研究[J];计算机研究与发展;2013年S2期
4 朱媛媛;王晓京;;基于GE码的HDFS优化方案[J];计算机应用;2013年03期
5 李晓恺;代翔;李文杰;崔U
本文编号:2736837
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2736837.html