大数据文件系统层

由于文件系统层关注的焦点,开始向“低延时处理”方向转移,所以传统基于磁盘存储的文件系统,也开始向基于内存计算的文件系统转变 —— 这样做,会大大降低I / O操作和磁盘序列化带来的访问开销。Tachyon 和 Spark RDD【16】就是朝这个方向演化的范例(注:这里RDD指的是弹性分布式数据集(Resilient Distributed Datasets),它是一种高度受限的共享内存模型,文献【16】由伯克利大学加州分校的Matei Zaharia等撰写的,他们提出了一种面向内存集群运算的容错抽象模型)。

  • Google文件系统(GFS)【17】-该文献是分布式文件系统的奠基之作,著名的Hadoop 分布式文件系统(HDFS),亦脱胎于GFS,基本上可视为GFS的一个简化实现版(注:文献【17】提出了一个可扩展的分布式文件系统GFS,可用于大型分布式数据密集型应用。文献认为,组件故障是常态而不是异常。其所提出的GFS,着眼在几个重要的目标,比如性能、可伸缩性、可靠性和可用性。GFS的新颖之处,并不在于它采用了多么令人惊艳的技术,而在于它能利用所提出的方案,采用廉价的商用机器,来构建高效的分布式文件系统。有用的创新,才是真的创新,GFS做到了!)。

  • Hadoop 文件系统【18】-该文献由雅虎公司的计算机科学家Konstantin Shvachko等人联合撰写的,论文给出了HDFS的进化历史背景及其架构的设计内涵,是了解Hadoop技术的经典之作。

  • Ceph文件系统【19】-Ceph是HDFS有力的替代者【20】(注:Ceph文件系统是加州大学圣克鲁兹分校(USSC)博士生Sage Weil博士期间的一项有关存储系统的研究项目。初出茅庐,略有小成。之后,在开源社区的推动下,Ceph逐渐羽翼渐丰,风云叱咤,功成名就,逐渐发展成为一个 Linux系统下 PB 级分布式文件系统。文献【19】是Weil本人在2006年顶级会议OSDI发表的有关Ceph的开山论文。文献【20】则是Weil率领他的一帮小伙伴们再次发文强调,Ceph是HDFS强有力的替代者)。

  • Tachyon【21】–是一个高容错的分布式内存文件系统,其设计的核心内涵是,要满足当下“低延迟”的数据处理要求(注:Tachyon是在内存中处理缓存文件,允许文件以访问内存的速度在集群框架中进行可靠的共享,类似于Spark。Tachyon的吞吐量比HDFS高出100倍。Spark框架虽然也提供了强大的内存计算能力,但其没有提供内存文件的存储管理能力,而Tachyon则弥补了Spark的不足之处。文献【21】是伯克利大学加州分校和麻省理工学院的研究者联合撰写的,发表在2014年的 SoCC国际会议上,论文一作UC Berkeley AMP实验室博士生李浩源,他亦是Spark核心开发人员之一)。

文件系统的演化历程,其实也见证了文件格式和压缩技术的发展历程。下面的参考文献,可以让你了解到,“面向行”或“面向列”存储格式各自的优缺点,并且还可让你了然文件存储技术发展的新趋势——嵌套式的面向列的存储格式,这种存储格式可极大提高大数据的处理效率。

当前,在文件系统阶段,数据管理的最大挑战之一就是,如何处理大数据中的数据冗余。纠删码(Erasure code)是很有创意的冗余保护机制,它可以减少三倍的冗余副本,还不会影响数据的可恢复性与可用性。

  • 面向列存储 vs. 面向列存储【22】—该文献是是2008年发表于SIGMOD的一篇论文,该文对数据的布局、压缩及物化(materialization)策略都做了很不错的综述。

  • RCFile【23】-这是由Facebook数据基础设施小组和俄亥俄州立大学的华人学者共同提出的文件存储格式,他们走了一个“中庸之道”,充分吸取面向列和面向行存储模式的优点,扬长避短,提出了一种混合的数据存储结构PAX(注:目前这种以行/列混合存储技术已成功应用于 Facebook 等国内外大型互联网企业的生产性运行体系)。

  • Parquet【24】- 这是一种面向行的存储格式,其设计理念源于谷歌 Dremel论文(注:Parquet主要用于 Hadoop 的生态系统中。文献【24】是Julien Dem在Github发表的一篇博客文章)。

  • ORCFile【25】–这是一种被Hive(一种基于Hadoop的数据仓库工具)采用的、面向列存储的改进版存储格式(注:文献【25】是2014年发表于顶会SIGMOD的一篇学术论文)。

  • 压缩技术【26】-这是是一篇阐述在Hadoop生态系统下的常见压缩算法的综述性文章,文章对常见的压缩算法和其适用场景以及它们的优缺点,做了非常不错的归纳总结。

  • 纠删码技术(Erasure code)【27】-这是一篇是田纳西大学EECS系教授James Plank撰写的、有关存储系统纠删码技术的入门级的文献。有关纠删码改进技术的阐述,读者可参阅来自南加州大学和Facebook的7名作者共同完成的论文《XORing Elephants: 面向大数据的新型纠删码技术【28】》(注:文献【28】的作者开发了纠删码家族的新成员——基于XOR的本地副本存储LRC,该技术是面向Hadoop生态系统的,可显著减少修复数据时的I/O操作和存储开销)。

数据存储层

宽泛地讲,据对一致性(consistency)要求的强弱不同,分布式数据存储策略,可分为ACID和BASE两大阵营。ACID是指数据库事务具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。ACID中的一致性要求比较强,事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。而BASE对一致性要求较弱,它的三个特征分别是:基本可用(Basically Available), 软状态/柔性事务(Soft-state,即状态可以有一段时间的不同步), 最终一致性(Eventual consistency)。BASE还进一步细分基于键值的,基于文档的和基于列和图形的 – 细分的依据取决于底层架构和所支持的数据结构(注:BASE完全不同于ACID模型,它以牺牲强一致性,获得基本可用性和柔性可靠性,并要求达到最终一致性)。

在数据存储层,还有很多类似的系统和某些系统的变种,这里,我仅仅列出较为出名的几个。如漏掉某些重要系统,还请谅解。

发布了41 篇原创文章 · 获赞 5 · 访问量 1258

猜你喜欢

转载自blog.csdn.net/yunduo1/article/details/103429733
今日推荐