一种基于hbase的虚拟文件系统及其实现方法

文档序号:9350023阅读:427来源:国知局
一种基于hbase的虚拟文件系统及其实现方法
【技术领域】
[0001]本发明涉及一种基于HBASE的虚拟文件系统及其实现方法。
【背景技术】
[0002]随着大数据时代的到来,快速响应海量存储成为数据存储方案的主要特征。于是基于分布式架构的HBASE迅速成为大数据存储的优选方案,但是在进行传统文件系统到HBASE文件系统移植过程中,数据存储原则的变更成为一个无法避免的攻坚点。

【发明内容】

[0003]本发明所要解决的技术问题是提供一种解决了大数据存储过程中,使用HBASE进行大数据存储时,需要对数据存储方法进行大幅度变更的问题的使用基于HBASE的虚拟文件系统及其实现方法。
[0004]本发明结合传统文件系统与HBASE文件系统的数据存储特点,使用分布式内存库作为辅助存储介质存储文件级目录索引,使用HBASE存储文件数据内容,模拟了传统文件系统的文件读写操作,有效的降低了在数据移植过程中,业务对于数据存储层介质变更的影响。
[0005]本发明解决上述技术问题的技术方案如下:一种基于HBASE的虚拟文件系统的实现方法,具体包括以下步骤:
[0006]步骤1:对虚拟文件系统和分布式内存库进行初始化连接;
[0007]步骤2:打开目录,读取分布式内存库中存储的目录信息,并将目录下的所有文件及子目录加载到内存中;
[0008]步骤3:读取目录,并将加载到内存中的所有文件及子目录按序依次返回;
[0009]步骤4:打开分布式内存库中的文件,从HBASE中读取数据或将数据存储到HBASE中;
[0010]步骤5:执行文件关闭操作;
[0011]步骤6:关闭目录,结束。
[0012]本发明的有益效果是:本发明解决了大数据存储过程中,使用HBASE进行大数据存储时,需要对数据存储方法进行大幅度变更的问题。使用分布式内存数据库和HBASE虚拟了传统的文件系统,减少了业务层对于数据存储层变更的影响,使得业务系统由传统文件系统存储模式到大数据存储模式的变更更为便捷。
[0013]在上述技术方案的基础上,本发明还可以做如下改进。
[0014]进一步,所述步骤4具体包括以下步骤:
[0015]步骤4.1:判断当前操作是否是读取模式,如果是,执行步骤4.2 ;否则,执行步骤4.4 ;
[0016]步骤4.2:从分布式内存库中查找文件对应的唯一 I D,打开扫描器,利用此ID生成rowkey前缀进行HBASE表扫描,获得扫描数据;
[0017]步骤4.3:读取扫描数据,执行步骤5 ;
[0018]步骤4.4:当前为写入模式,在分布式内存库中对数据生成唯一 I D,并进行HBASE打开表操作,控制生成的I D生成对应的rowkey前缀;
[0019]步骤4.5:将rowkey前缀后追加索引,以此索引为rowkey,以文件记录为关键字将数据存储到HBASE中,执行步骤5。
[0020]进一步,所述步骤5具体包括以下步骤:
[0021]步骤5.1:判断步骤4是否执行读取模式,如果是,执行步骤5.2 ;否则,执行步骤5.3 ;
[0022]步骤5.2:关闭步骤4.2中打开的扫描器,执行步骤6 ;
[0023]步骤5.3:调用刷新接口,进行HBASE提交操作,保证数据安全性,执行步骤6。
[0024]进一步,所述步骤I中文件与目录的索引关系存储在分布式内存库中,虚拟文件系统与分布式内存库建立连接后可获取对应的目录索引关系。
[0025]进一步,所述步骤2中打开目录时,需要读取分布式内存库中目录与文件索引的对应关系,查找当前目录下的所有文件及子目录。
[0026]进一步,所述步骤4.2中进行文件读取时,需要读取分布式内存库中文件的状态信息,并从HBASE中获取文件数据记录。
[0027]进一步,进行文件删除时,需要修改分布式内存库中对应的文件状态信息,使其为无效状态,后续由辅助工具进行HBASE中对应数据的删除操作,避免了数据直接删除的效率冋题。
[0028]本发明解决上述技术问题的技术方案如下:一种基于HBASE的虚拟文件系统,包括连接模块、目录打开模块、目录读取模块、文件打开模块、文件关闭模块和目录关闭模块;
[0029]所述连接模块用于对虚拟文件系统和分布式内存库进行初始化连接;
[0030]所述目录打开模块用于打开目录,读取分布式内存库中存储的目录信息,并将目录下的所有文件及子目录加载到内存中;
[0031 ] 所述目录读取模块用于读取目录,并将加载到内存中的所有文件及子目录按序依次返回分布式内存库;
[0032]所述文件打开模块用于打开分布式内存库中的文件,从HABSE中读取数据或将数据存储到HBASE中;
[0033]所述文件关闭模块用于执行文件关闭操作;
[0034]所述目录关闭模块用于关闭目录,结束。
[0035]在上述技术方案的基础上,本发明还可以做如下改进。
[0036]进一步,所述文件打开模块包括模式判断模块、读取模块和写入模块;
[0037]所述模式判断模块用于判断当前操作是否是读取模式,如果是,触发读取模块;否贝IJ,触发写入模块;
[0038]所述读取模块用于从分布式内存库中查找文件对应的唯一 ID,打开扫描器,利用此ID生成rowkey前缀进行HBASE表扫描,获得扫描数据;读取扫描数据;
[0039]所述写入模块用于在分布式内存库中对数据生成唯一 ID,并进行HBASE打开表操作,控制生成的ID生成对应的rowkey前缀;将rowkey前缀后追加索引,以此索引为rowkey,以文件记录为关键字将数据存储到HBASE中。
[0040]进一步,所述目录打开模块中打开目录时,需要读取分布式内存库中目录与文件索引的对应关系,查找当前目录下的所有文件及子目录。
[0041]进一步,所述读取模块中进行文件读取时,需要读取分布式内存库中文件的状态信息,并从HBASE中获取文件数据记录。
[0042]进一步,进行文件删除时,需要修改分布式内存库中对应的文件状态信息,使其为无效状态,后续由辅助工具进行HBASE中对应数据的删除操作。
[0043]传统文件系统以文件目录和文件名称组成唯一的文件路径,基于HBASE虚拟文件系统的实现方法,使用分布式内存库作为文件路径及索引的存储介质,HBASE中以rowkey、列簇、列名、value标识指定文件的唯一记录。
[0044]基于HBASE虚拟文件系统,首先需要以分布式内存库作为文件目录及文件名称及索引的存储介质,最小单位为文件,每个文件或目录对一了唯一的索引,目录与文件的关系以递归的形式存储在分布式内存库中。
[0045]基于HBASE虚拟文件系统,其次文件对应的数据存储在HBASE中,最小单位为记录,rowkey的组织形式为“文件唯一索引倒序”加记录唯一索引,便于文件的读写。
[0046]基于HBASE虚拟文件系统,再次提供了类似于传统文件系统的读写接口,包含目录操作及文件操作,接口参数及返回值含义与传统文件系统基本相同,减少了业务层对于数据存储方法及接口调用的变更。
[0047]本发明的主要思路在于:结合传统文件系统及HBASE文件系统存储数据的特点,通过对HBASE数据的rowkey及value的设计和分布式内存库的使用,虚拟传统文件系统的数据存储方式,提供sopen (文件打开)、swrite (数据写入)、sclose (文件关闭)等文件操作以及smkdir(创建目录)、sopendir (打开目录)、sreaddir (读取目录)、sclosedir (关闭目录)等目录操作。同时将数据按照key-value的形式存储到HBASE中。尽量减少业务应用对于数
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1