论文部分内容阅读
近年来,数据呈现爆炸式增长,我们已全面进入大数据时代。大数据技术也应运而生,其中的典型代表为Apache的Hadoop开源项目,这对传统文件系统带来了一定的挑战,包括BWFS、GPFS等。当前各主流文件系统如Lustre、PVFS、Ceph、GPFS等都已经实现了对Hadoop的原生支持,这样既可满足传统应用的存储需求也可满足对大数据并行处理应用的新需求。但是,由于Hadoop默认存储系统HDFS与BWFS数据不兼容,若执行大数据并行处理应用,BWFS上的数据需先拷贝至HDFS,此时将产生拷贝时间开销。针对该问题,本文以pNFS具有与BWFS相同的结构,且pNFS的搭建环境更易于满足以及pNFS是下一代标准网络文件系统作为契机,在pNFS上实现了对Hadoop框架的支持。本文取得的主要成果如下: pNFS支持Hadoop框架的设计与实现:在Hadoop的HDFS API及pNFS client之间添加一层“pNFS shim layer”。实现了Hadoop提供的22个HDFS API,并将请求转发给pNFS client。这使得pNFS既支持传统应用,又能支持大数据并行处理新应用。测试结果表明,pNFS支持Hadoop取得了与HDFS相当的性能。 针对写密集型应用,在“pNFS shim layer”中添加写缓存模块:提升了整体系统写性能。测试结果表明:支持Hadoop执行写密集型的测试用例时,添加了写缓存模块的pNFS比未添加写缓存的pNFS性能提升了3至6倍,并且相较HDFS的性能提升了45%~54%,达到了预期效果。 针对读密集型应用,在“pNFS shim layer”中设计并实现了节点级数据布局感知机制:依据Hadoop的计算与存储较近的原则,实现了HDFS API中的getFileBlockLocations接口。通过在pNFS内核模块中添加新的功能获得数据在设备级的布局信息,再通过iSCSI服务获得设备与节点的对应关系,从而建立映射得到文件数据在节点级的布局信息。最终使得Hadoop的计算任务尽可能部署到离处理数据较近的节点,使得数据本地化。测试结果表明该机制将map task的数据读取本地率从20%~33%提升至97%以上,此时的Hadoop性能相较于HDFS支持的Hadoop提升了60%~68%,比未实现数据布局感知机制的pNFS支持的Hadoop提升了28%以上,达到了预期效果。