基于文件的分布式存储与查询系统.doc

上传人:啊飒飒 文档编号:10930043 上传时间:2021-06-12 格式:DOC 页数:11 大小:134.50KB
返回 下载 相关 举报
基于文件的分布式存储与查询系统.doc_第1页
第1页 / 共11页
基于文件的分布式存储与查询系统.doc_第2页
第2页 / 共11页
基于文件的分布式存储与查询系统.doc_第3页
第3页 / 共11页
基于文件的分布式存储与查询系统.doc_第4页
第4页 / 共11页
基于文件的分布式存储与查询系统.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《基于文件的分布式存储与查询系统.doc》由会员分享,可在线阅读,更多相关《基于文件的分布式存储与查询系统.doc(11页珍藏版)》请在三一文库上搜索。

1、基于文件的分布式存储与查询系统(武汉理工大学信息工程学院)0 引言21 文件的分布式的存储处理21.1 分布式存储系统框架31.2 数据分片分片分发策略31.3 数据的写入过程41.4 分布式存储中的复制策略52 分布式查询52.1 查询处理62.2 数据的并行查询72.3 数据的局部访问83 结束语8参考文献 (References)9摘要:现今的分布式存储系统,一般采用的是分布式数据库系统。分布式数据库技术较为复杂,整个系统维护管理较为困难。本文根据实际的应用,结合分布式原理,设计和实现了一种基于文件的分布式存储系统,把海量数据分成多个小的数据文件,存储于多个存储节点上,并在此系统开发了一

2、个快速查询应用,取得了较好的效果。关键词: 分布式存储;分布式查询;并行计算A distributed storage and query system based on file storage(School of Information Engineering, Wuhan University of Technology)Abstract: Nowdays, distributed storage system generally uses a distributed database system.Thedistributed database technology is relati

3、vely complex and the whole system maintenance andmanagement is difficult. A distributed storage and query system based on file storage that massive datais splited into many small data files and stored on multiple data nodes is designed and implemented bycombining the practical appllication and the p

4、rinciple of distributed system. A fast query applicationhas been developed based on the system, and the results are promising.Key words: distributed storage; distributed query; parallel computing0 引言现代计算机的广泛使用,数字信息的迅速膨胀,在各种领域中,特别是在IT 领域中,每天都可能会产生海量的原始数据,如何存储这些原始数据,如何快速查询自己想要知道的原始记录,变得越来越重要。要完成对数据的查询

5、,首先必须解决数据的存储问题,对于数据的存储管理,一般采用的是数据库技术,对海量数据的存储采取的是分布式数据库系统,分布式数据库系统的数据在逻辑是统一的,而在物理上却是分散的,进一步讲,分布式数据库是把数据按照一定的规则分布在不同的站点(Site,又称节点Node)上,并且这些数据是建立在统一的逻辑上的。本文根据分布式数据库的存储原理,设计了一个将海量的数据使用文本文件进行分布式的存储系统,并在此系统上实现数据的快速查询。1 文件的分布式的存储处理分布式存储是将海量的数据分布存放于多个节点上,为了更适合分布式的应用,系统一般可以简单地分为客户层、中间层和数据层。使用3 层的优点是可以把复杂的业

6、务逻辑处理放在中间层来处理,而业务逻辑发生变化时只要对中间层进行维护,而不用对其它逻辑进行修改。分布式数据的存储结构,在一定的程度上决定着分布式系统的应用,所以存储方案的设计决定着分布式应用的性能。1.1 分布式存储系统框架Google 的分布式文件系统是在下面的几个假设的条件下1:硬件故障是常态、支持大数据的集、一次写入多次读取、高并发性。Google 的分布式文件系统平台是建立在大量的廉价的,消费级的IT 部件上的,某些部件的可靠性并不能保障,所以系统必须较好容错处理与恢复处理能力;该系统中可以支技海数据的存储,数据量可以是T 级的,甚至是PB 级别的;这些数据一般是原始记录,所以写入后一

7、般不会对其进行修改;高的并发性,是系统使用针对多用户所设计的,在某一时刻可能有多个用户同时访问相同的数据。本文所设计的分布式系主要是针对海量的数据存储与查询,所以系统结构可以简单的设计成图1 所示。将一个大的数据文件分成若干不相关的小文件,并分发到各结点去存储,为了使数据有较好的恢复性,各节点之间的数据可以相互的备份。1.2 数据分片分片分发策略在分布式存储系统中,数据是经过分片的方式存放在网络中的多个存储结点上的。如何选择有效的数据存放策略来使系统具有稳定的可靠性与良好的性能至关重要。通常数据放置策略分为顺序放置策略和随机放置策略。顺序存储的好处在于当数据结点发生故障时,数据的恢复开销比较小

8、,各节点的数据管理比较容易;随机放置策略的优点在于数据在整个系统中是均匀分布,从整体上有利于存储的负载均衡2。结合两者的优点,本文所设计的存储系统是将两种策略进行结合,达到数据的顺序存储和均匀分布。本文所设计的系统是针对某IT 公司某产品的使用情况原始日志存储与查询,其用户使用总量在4 亿左右,服务器每天收集的数据记录是3 亿左右,每天的日志量在80G左右。每条数据的记录信息主要包括时间,IP 与用户ID 号。其中用户ID 号是结合MAC 地址生成唯一标识,它是由a-f 与数字组成的长为64 位的字符串,每台电脑的ID 号都是唯一。由于有可能每台电脑每天会产生不止一条记录,要将这些数据长期保存

9、,并且给出指定的ID 号查询这个ID 号在指定时间段内的记录。本系统是将数据按照日期与ID 号的前三位进行划分,将每天ID 号前3 位相同记录随机的划分成N 个文件,其中N 是数据存储结点的个数,即将每天的原始记录文件分成16*16*16*N 个不相关的小个文件,每个节点按日期存储16*16*16 个小文件。这样划分就可以保证数据在各节点可以按顺序存储,同时也保证了整个系统中数据存储的负载均衡,并且可以使后面的的查询程序的并行性尽可能地得到开发,使资源尽量充分的得利用。1.3 数据的写入过程查询数据库中的记录时,在数据表的相关字段添加索引可以加快查询数据的速度,但是当查询涉及属性超过6 个的时

10、候,多维索引的查询性能就会急剧的下降3。可见在数据表中,索引可以明显改善数据的查询性能,但是并不是索引越多越好,适量的索引才能改善查询性能。本系统数据在各结点并不是以数据库存储,而是以文本文件形式存储,在数据的存储过程中建立多级目录,利用目录树达到数据库索引的效果,如建立目录:产品名/年/月/日/ID前两位。每个结点将分到的数据写入这样的目录下,在查询时就可以利用目录树快速的定位至相应的文件,从而可以加快数据的查询速度。1.4 分布式存储中的复制策略总体来说,复制策略是决定一个数据对象同时应该拥有几个副本,以及这些副本怎样才能进行有效地管理,必须考虑以下几个问题4:(1)复制算法的设计。它对数

11、据副本的读取和更新都有极其关键的影响,从根本上决定了一个系统管理的有效性。(2)副本的的个数。较少的副本可能会使数据丢失,而副本多了浪费了资源,并且也增加了管理的难度。(3)数据的更新问题。一个数据对像可能有多个副本,怎样才能更合理去更新数据。(4)数据的一致性程度。这包括强一致性和弱一致性。强一致性要求所有副本同步更新,会降低数据的可用性和访问速度;弱一致性则允许非同步更新, 会产生一些过期的数据。(5)用户应用需求。由于应用的不同,开发具体的分布式存储系统时需要综合考虑这些因素, 满足不同的用户需求。在各种不同的分布式存储中,数据的复制策略是根据实际情况而确定的,一种较为简单的方法是各节点

12、上的数据只要一个副本,各节点之间相互备份,如将结点1 的数据备份到结点2 上,将结点2 的数据备份到结点3 上,以此类推,最后将结点n-1 的数据备份到结点n上,结点n 的数据备份到结点1 上。这样做的最大优点是整个系统的存储负载均衡,数据的管理较为容易;但不利于结点加入与退出,一旦相互备份的结点同时出现故障时,部分数据就无法得到恢复。本系统的数据存储就是使用这种策略。2 分布式查询本文设计的分布式数据存储系统最终是应用在数据的快速查询上,给出一个ID 号与时间段,能快速的查询这个ID 号在这个时间段内所有的原始记录。本文采用的是C/S(客户机/服务器)模式,其为分布式查询系统的核心,把客户界

13、面和应用系统的应用逻辑分离开来,实现不同的应用。具体表现为client(客户端)的请求和server(服务器端)的请求响应5。查询系统主要包括以下二点:(1)表示处理逻辑。为客户和信息系统提供了一个交互平台,主要是数据的输入和输出, 查询请求的输入与最终结果的输出,即人机交互界面。(2) 数据处理逻辑。是应用系统中负责数据操作的主体,接收已输入的查询数据请求, 经过各结点的查询处理并返回最终结果。基于前面的分布式数据存储系统结构,本文将分布式查询系统结构设计成图2 所示:服务器、客户端与数据存储节点之间都是通过网络连接,它们之前的数据交换都是通过网络完成,其过程为:客户端发送查询请求数据;服务

14、器端接收客户端发送的数据查询请求,并将这个查询请求同时转发给各数据存储结节;数据存储结点查询本地数据,并将结果返回给服务器端;服务器端收集到所有数据节点返回的查询结果后,将这些结果进行合并,并将最终的结果返回给客户端。2.1 查询处理在一般的分布查询系统,主要是利用分布式数据库技术,其查询处理一般可以分为四个层次6:(1)查询分解。将待查询问题转化成一个定义在全局关系上的关系代数表达式或SQL 语句, 本层转换所需要的信息在全局概念模式中获得。(2)数据本地化。把一个在全局关系上的查询具体化, 落实为一相应物理片段上的查询。这一变换所需要的信息在分布式数据的分片模式和片段分配模式中获得。(3)

15、数据的全局优化。根据查询语句, 寻找一个近于最优的执行策略, 确定查询的相关节点,以实现用最少的时间执行查询。(4)数据的局部查询。由拥有与查询有关的片段的各个节点具体执行。在一个节点上执行的子查询, 被称为局部查询。从图 2 中可知,本文的分布式查询系统,查询的所有处理都是在存储节点上完成的,这样可以简化系统的设计,使整个系统更加的简练、透明,执行查询时就像是在查询本机数据,同时整个系统的维护也更加的简单容易。2.2 数据的并行查询在集中式数据库中,由于系统大多运行在单个的处理计算上,所有的操作都是在本地完成,所以执行查询的总代价是CPU 代价+I/O 代价。所花费的时间就是本机完成查询的时

16、间,其花费时间主要是由查询数据量的大小与机器的性能决定。而在分布查询中,数据是分布在多个节点上,所查询的代价不仅要考虑CPU 代价与I/O 代价,同时还要考虑数据在网络上的传输代价,即总代价为CPU 代价+I/O 代价+ 通信代价。并且其时间花费也不是单一机器消耗的时间,在分布式查询中是利用空间换取时间,从而提高查询的速度。其查询的时间,除去网络数据的传输,就是所有节点完成局部查询的时间。要减少查询总体花费的时间,就必须使各节点尽量的并行查询,即各存储节点同时接收来自服务器端的数据查询请求,同时并行进行局部查询,服务器同时并行接收各节点查询的数据结果。这样系统完成查询时间在机器配置相同的情况上

17、,约是单台机器花费时间的1/N(N 是存储的节点数)。理论是存储结点越多,查询相同数据的时间消耗越少。2.3 数据的局部访问各节点在接收到来自服务器端的数据查询请求时,完成对自身的数据查询称为数据的局部访问。从整个查询系统来看,系统并行查询所用时间,就是整个系统中,局部查询查询最慢节点的用时,所以必须尽可的提高每一个节点的查询速度。在数据库存储系统中,索引可以提高数据的查询速度,本文所设计的系统中各节点存储的文本文件,根据前面的数据写入过程的设计,可以利用数据存储的目录结构来实现类似于数据库的索引功能,根据查询请求中的信息,可得到:产品名/年/月/日/ID 前两位/文件名,这样就可以确定查询结

18、果在节点中的具体路径与文件,完成结果所在文件的快速定位,提高数据局部查询的速度。在计算机中,当输入到内存的数据量超过内存的大小时,数据内存的数据就会反复输出到硬盘,这样就会引起较高的费用。在局部查询中,若查询较长一段时间某ID 号的记录时,如果将所有相关的结果文件都输放到内存中,这些文件的总大小极可能超出计算机的内存,这样必然影响查询的速度。为避免出现这种情况,在局部查询中,顺序查询每天的对应的文件,最终在节点上将查询时间段中每天的结果进行合并,发送给服务器端,这样局部查询中,各节点在执行查询中内存的消耗非常小,有利于提高局部查询速度。3 结束语本文设计的分布式存储查询系统,在处理简单的大数据

19、存储查询较为实用,系统的维护简单,数据的查询速度较快。分布式存储查询系统较为复杂,本文设计是较为简单实用的系统,在实际应用中,可根据具体的要求,对本文系统进行修改,变成自己所需的分布式存储查询系统。由于分布式本身的复杂, 技术内容丰富,还有许多问题有待进一步研究和解决。随着计算机技术的飞速发展, 相信分布式数据存储与查询也将得到迅速的发展。参考文献 (References)1 孙健, 贾晓菁. Google 云计算平台的技术构架及对其成本的影响的研究J. 电信科学,2010, 1(01) :38-44.2 胡文波,徐造林. 分布式存储方案的设计与研究J. 计算机技术与发展,2010, 20(01) :65-68.3 韩希先,杨东华,李建中. 海量数据上一种有效的Top_K 查询处理算法 J.计算机学报,2010, 33(08) :1405-1417.4 姜大光,奚加鹏,徐造林. 分布式存储系统( OceanStore) 的复制策略J.计算机工程与科学,2008,30(08) :144-149.5 吴媚芳,吴决. 基于C/S 计算模式COMODIS 数据查询优化 J. 电脑与信息技术,2003, 1(01) :26-27.6 李华,赵建平. 分布式数据库查询的优化处理方法J. 长春理工大学学报,2005,28(04) :85-89.11

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1