摘要:《开源软件中的大数据管理技术》一文以Hadoop、Parquet、Cassandra、IoTDB等系统为例,介绍了存储系统中的LSM结构、列式存储,副本机制中的副本一致性、纠删码技术,分布式协议等大数据管理技术的原理及优缺点,并对大数据管理的发展趋势及未来研究方向进行了详细的分析。在大数据管理系统中,存储、数据分区、副本机制与一致性协议技术相互交织在一起,因而在引入一种技术时往往需要同时考虑对其他部分的依赖。

开源软件中的大数据管理技术| 大数据系统软件国家工程实验室黄向东团队研究成果

开源软件中的大数据管理技术| 大数据系统软件国家工程实验室黄向东团队研究成果

随着众多大数据管理技术的发展,基于此类技术的开源大数据管理软件快速涌现。《开源软件中的大数据管理技术》一文以Hadoop、Parquet、Cassandra、IoTDB等系统为例,介绍了存储系统中的LSM结构、列式存储,副本机制中的副本一致性、纠删码技术,分布式协议等大数据管理技术的原理及优缺点,并对大数据管理的发展趋势及未来研究方向进行了详细的分析。


研究背景


近10年来,大数据管理技术的发展日新月异。2008年,以宽表系统为代表,分布式、非关系模型等数据管理技术逐渐被广泛接受。2009年,NoSQL潮流兴起,进一步推动了基于非关系模型、面向特定应用需求的数据管理技术的发展。


随着新技术的提出,若干基于这些技术的开源大数据管理软件快速涌现,在这些开源软件中,最为活跃的当属Apache软件基金会生态中的大数据管理软件。


研究内容


数据库的存储引擎负责缓冲区管理、磁盘数据管理、磁盘数据查询等,是数据库的核心模块。存储引擎设计的好坏直接影响数据库的读写性能。通常来说,存储引擎的设计取决于目标负载,针对不同负载要求可以采用不同的存储管理方式。


针对“读多写少”的负载,传统关系数据库常采用B+树来管理数据。然而,近年来写入请求占总请求的比例在逐年上涨,逐渐占据了主导地位。基于B+树的方案在目前较为普及的基于机械硬盘的服务器上存在严重的IO瓶颈。基于数据顺序追加与数据整理的LSM-Tree(log-structured merge tree)方法是解决B+树在写入时引入大量随机I/O导致机械硬盘出现性能瓶颈问题的一个有效手段。


LSM结构在新的数据写入时会先在内存中进行缓存,并在内存中数据达到一定量时,将数据整块顺序写入到磁盘,而非B树一样修改原有的数据结构。


然而,LSM在查询性能上也存在着巨大的缺陷——磁盘上的数据块之间既不能保证有序,又不能保证无重复,查询时需要对多个数据块进行归并,引入了量的随机I/O。


合并操作提高了数据的连续性,减少了数据的冗余程度,缓解了LSM-Tree查询时的性能问题。但是合并本身既包含对老数据的读也包含对新数据的写,本身会占用大量的系统资源,从而削弱了LSM的写入优势。因此,许多工作从减少合并次数、提高合并并行度、减少单次合并的I/O开销,优化合并调度策略减少对常规业务的影响等方面着手,提出了各自对LSM-Tree的改进。


人们注意到,在大数据分析应用中,行式的文件结构存在着难以实现高压缩、处理低选择率的查询I/O效率低等问题。


在大数据生态发展过程中,大量列式文件格式被发明,它们被用于各种分析系统和应用当中。虽然通用的列式存储文件格式能够很好地应对多数应用场景,但是面对特定数据类型时,这些通用文件格式难以做到针对这些数据类型的高压缩率,高读写速率。为此,像Apache TsFile这类针对特定场景下的数据(时序数据)的文件存储格式也应用而生。


除了提出新的文件结构外,目前针对存储结构的研究主要关注如何面对动态变化的负载,自动地寻找最佳的存储结构或索引结构,从而避免系统管理员手动调整存储结构。


数据分区作为分布式存储系统的基本功能,其分区结果好坏制约了系统的读写性能。传统的关系数据分区策略包括水平分区和垂直分区。分布式数据库多采用水平分区,并基于分布式哈希表(DHT)或查找表的方式进行分区定位。


集群弹性扩展是分布式系统的特色之一,扩展时的数据分区修改也成为值得研究的主题之一。而随着实际应用中集群规模的不断扩大,云原生数据库的兴起,数据分区与数据迁移的优化依然是分布式数据管理的研究热点。


副本机制是指通过将一份数据在系统中重复存储多份降低对某一节点的访问负载,从而确保数据的高可用性与高可靠性的技术。多数分布式系统都是通过采用副本机制,实现在大量不可靠的服务器上可靠地存储海量数据。


通过副本机制来确保可靠性的系统,往往都会存在磁盘空间占用比较大的问题。为解决这一问题,一些系统引入了纠删码机制——通过在其他节点记录数据的纠删码来使得某个节点发生数据丢失时,可以通过纠删码恢复丢失的数据。但纠删码由于计算复杂,存在恢复速度与更新速度都较慢的缺点。


总体而言,如果存储系统用于频繁地更新数据,采用副本机制更合适,如果存储系统主要用于归档数据,则采用纠删码更合适。


为使集群中的各节点准确有效地协同工作,多种分布式协议被提出,其中最有代表性的是法团协议和共识算法。


法团协议主要通过控制读写请求需要完成的副本数实现对副本一致性的控制,是一种相对简单的副本控制协议,可以作为其他复杂协议的基础。


共识算法最常用于支持分布式事务,例如在P2P架构中,由于没有处于特殊地位的节点,当多个节点产生冲突时,共识算法便被用来使这些节点“达成共识”。


发展前景


Apache社区的开源大数据管理系统包括了分布式文件系统、键值数据管理系统和时序数据管理系统。


Hadoop分布式文件系统采用分布式的思想,适合存储大文件。它采用副本机制和纠删码保证数据的可靠性,但在极特定场景下也会产生副本不一致的情况。


键值数据库的模型简单,支持的查询也仅限于单点查询、范围查询。其存储引擎通常基于LSM。目前流行的键值数据库包括Apache Accumulo、Apache Cassandra、Apache HBase等。


时序数据管理系统主要采用3种架构:基于关系数据库、基于键值数据库、原生的时序数据库。


时间序列数据本质上是一个时间函数的部分采样结果,而现实中的时间函数多数是连续、存在一定规律的,这使得对时间序列进行压缩切实可行。同时,时间序列数据也是一种流式数据,但时间戳的存在为其带来了新的机遇和挑战。


研究结论


在大数据管理系统中,存储、数据分区、副本机制与一致性协议技术相互交织在一起,因而在引入一种技术时往往需要同时考虑对其他部分的依赖。


大数据技术研究领域还有非常多的开放问题有待解决,尤其是在面向特定领域数据管理方面,有广泛的研究空间。


论文作者:

江天,乔嘉林,黄向东,王建民

作者简介:

江天,清华大学软件学院,大数据研究中心,大数据系统软件国家工程实验室,博士研究生,研究方向为大数据系统;黄向东,清华大学软件学院,大数据研究中心,大数据系统软件国家工程实验室,助理研究员,研究方向为分布式系统及时序数据库。

全文详见《开源软件中的大数据管理技术》,已发表于2020年《科技导报》第3期。

开源软件中的大数据管理技术| 大数据系统软件国家工程实验室黄向东团队研究成果

《科技导报》创刊于1980年,中国科协学术会刊,主要刊登科学前沿和技术热点领域突破性的成果报道、权威性的科学评论、引领性的高端综述,发表促进经济社会发展、完善科技管理、优化科研环境、培育科学文化、促进科技创新和科技成果转化的决策咨询建议。常设栏目有院士卷首语、智库观点、科技评论、热点专题、综述、论文、学术聚焦、科学人文等。

《科技导报》微信公众平台创建于2014年,主要刊登《科技导报》期刊内容要点,报道热点科技问题、科技事件、科学人物,打造与纸刊紧密联系又特色鲜明的新媒体平台。

相关文章