VLDB 2013 Paper 分布式元数据论文阅读笔记整理
问题
在2013年之前,由于网络链路带宽有限,数据在集群中移动速度慢,因此Hadoop尽量将数据留在原来的位置,并将处理代码发送给它。随着网络链路的发展,可以之前更高的数据传输。
且HDFS采用三副本的方法容错,产生大量的存储开销。
本文工作
Quantcast文件系统(QFS)是Hadoop分布式文件系统(HDFS)的有效替代方案。QFS是用C++编写的,与Hadoop MapReduce插件兼容,并提供了相对于HDFS的几个效率改进:
-
通过Reed-Solomon擦除编码而不是三副本复制,默认采用6+3配置,节省50%的磁盘空间,使写入吞吐量翻倍。
-
更快的名称节点
-
通过并发附加功能支持更快的排序和日志记录
-
比HDFS更快的本地命令行客户端
-
全局反馈导向的I/O设备管理
-
通过直接I/O确定I/O设备行为
开源代码:GitHub - quantcast/qfs: Quantcast File System
QFS与Hadoop兼容,将数据从HDFS迁移到QFS只需执行Hadoop-distcp。
元数据服务器
负责块创建、维持空间平衡、保持冗余、块驱逐、节点休眠
使用B+树表示文件系统元数据以最小化随机存储器访问,树有四种类型的节点:内部、文件或目录属性、目录条目、区块信息。树中的所有密钥都是16字节整数:4位节点类型、4位密钥保存节点号(目录id)、60位子密钥保存文件内块位置或目录名哈希。
设计为目录条目节点紧跟在目录属性节点之后以优化目录列表,块信息节点紧跟在文件属性节点之后,以优化打开和读取文件。
总结
设计了QFS文件系统,与HDFS兼容。设计了几个优化点:采用RS编码存储数据,不使用三副本,节省50%存储空间;使用B+树存储元数据,将目录条目节点紧跟在目录属性节点之后以优化目录查询,块信息节点紧跟在文件属性节点之后,以优化打开和读取文件。