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

文档序号:9350023阅读:来源:国知局
据层存储介质变更的感知,同时基于虚拟文件系统的特点,提供虚拟文件系统的查询方法,从而实现了在进行不同的文件系统数据查询时,查询原则的一致性。
【附图说明】
[0048]图1为本发明实施例所述的一种基于HBASE的虚拟文件系统的实现方法流程图;
[0049]图2为本发明实施例所述的一种基于HBASE的虚拟文件系统的结构框图
[0050]附图中,各标号所代表的部件列表如下:
[0051]1、连接模块,2、目录打开模块,3、目录读取模块,4、文件打开模块,5、文件关闭模块,6、目录关闭模块,41、模式判断模块,42、读取模块,43、写入模块。
【具体实施方式】
[0052]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0053]如图1所示,为本发明实施例所述的一种基于HBASE的虚拟文件系统的实现方法,具体包括以下步骤:
[0054]步骤1:对虚拟文件系统和分布式内存库进行初始化连接;
[0055]步骤2:打开目录,读取分布式内存库中存储的目录信息,并将目录下的所有文件及子目录加载到内存中;
[0056]步骤3:读取目录,并将加载到内存中的所有文件及子目录按序依次返回;
[0057]步骤4:判断当前操作是否是读取模式,如果是,执行步骤5 ;否则,执行步骤7 ;
[0058]步骤5:从分布式内存库中查找文件对应的唯一 ID,打开扫描器,利用此ID生成rowkey前缀进行HBASE表扫描,获得扫描数据;
[0059]步骤6:读取扫描数据,执行步骤9 ;
[0060]步骤7:当前为写入模式,在分布式内存库中对数据生成唯一 ID,并进行HBASE打开表操作,控制生成的ID生成对应的rowkey前缀;
[0061]步骤8:将rowkey前缀后追加索引,以此索引为rowkey,以文件记录为关键字将数据存储到HBASE中,执行步骤9 ;
[0062]步骤9:执行文件关闭操作;
[0063]步骤10:关闭目录,结束。
[0064]所述步骤9具体包括以下步骤:
[0065]步骤9:判断步骤4是否执行读取模式,如果是,执行步骤9.2 ;否则,执行步骤9.3 ;
[0066]步骤9.2:关闭步骤5中打开的扫描器,执行步骤10 ;
[0067]步骤9.3:调用刷新接口,进行HBASE提交操作,保证数据安全性,执行步骤10。
[0068]所述步骤2中打开目录时,需要读取分布式内存库中目录与文件索引的对应关系,查找当前目录下的所有文件及子目录。
[0069]所述步骤5中进行文件读取时,需要读取分布式内存库中文件的状态信息,并从HBASE中获取文件数据记录。
[0070]进行文件删除时,需要修改分布式内存库中对应的文件状态信息,使其为无效状态,后续由辅助工具进行HBASE中对应数据的删除操作。
[0071]如图2所示,为本发明实施例所述的一种基于HBASE的虚拟文件系统,包括连接模块1、目录打开模块2、目录读取模块3、文件打开模块4、文件关闭模块5和目录关闭模块6 ;
[0072]所述连接模块I用于对虚拟文件系统和分布式内存库进行初始化连接;
[0073]所述目录打开模块2用于打开目录,读取分布式内存库中存储的目录信息,并将目录下的所有文件及子目录加载到内存中;
[0074]所述目录读取模块3用于读取目录,并将加载到内存中的所有文件及子目录按序依次返回分布式内存库;
[0075]所述文件打开模块4用于打开分布式内存库中的文件,从HBASE中读取数据或将数据存储到HBASE中;
[0076]所述文件关闭模块5用于执行文件关闭操作;
[0077]所述目录关闭模块6用于关闭目录,结束。
[0078]所述文件打开模块4包括模式判断模块41、读取模块42和写入模块43 ;
[0079]所述模式判断模块41用于判断当前操作是否是读取模式,如果是,触发读取模块42;否则,触发写入模块43;
[0080]所述读取模块42用于从分布式内存库中查找文件对应的唯一 ID,打开扫描器,利用此ID生成rowkey前缀进行HBASE表扫描,获得扫描数据;读取扫描数据;
[0081]所述写入模块43用于在分布式内存库中对数据生成唯一 ID,并进行HBASE打开表操作,控制生成的ID生成对应的rowkey前缀J^rowkey前缀后追加索引,以此索引为rowkey,以文件记录为关键字将数据存储到HBASE中。
[0082]所述目录打开模块2中打开目录时,需要读取分布式内存库中目录与文件索引的对应关系,查找当前目录下的所有文件及子目录。
[0083]所述读取模块42中进行文件读取时,需要读取分布式内存库中文件的状态信息,并从HBASE中获取文件数据记录。
[0084]进行文件删除时,需要修改分布式内存库中对应的文件状态信息,使其为无效状态,后续由辅助工具进行HBASE中对应数据的删除操作。
[0085]HBASE文件系统是分布式文件系统,在使用HBASE系统存储之前,要先对HABSE文件系统进行初始化连接。正常连接后,结合分布式内存库中的文件和目录索引关系,可对HBASE文件系统采用类似于传统文件系统的文件读写方法进行操作。操作流程如下:
[0086]1.调用sinit进行分布式内存库连接和HBASE连接操作;
[0087]2.调用sopendir进行目录打开操作,此操作过程中需要读取分布式内存库中目录的信息,并将目录下的所有文件及子目录加载到内存中;
[0088]3.调用sreaddir进行目录读取操作,此操作过程需要将步骤2加载到内存中的文件及目录按照顺序依次返回;
[0089]4.调用sopen进行文件打开操作,此操作过程包含两种模式,一类是读取模式,从分布式内存库中查找文件对应的唯一 ID,利用此ID生成rowkey的前缀进行HBASE表扫描,一类是写入模式,在分布式内存库中生成唯一 ID,并进行HBASE打开表操作;
[0090]5.调用sread进行文件读取操作,此操作过程需要读取步骤4读取模式扫描得到的数据;
[0091]6.调用swrite进行文件写入操作,此操作过程需要在步骤4生成的rowkey前缀后追加记录索引,以此为rowkey,以文件记录为value存储到HBASE中;
[0092]7.调用sclose进行文件关闭操作,此操作过程若为读取模式,则需要关闭步骤4打开的扫描器,若为写入模式,则需要调用Sflush接口,进行HBASE提交操作,保证数据安全性;
[0093]8.调用sclosedir进行目录关闭操作;
[0094]9.系统释放 sdestroy。
[0095]本发明结合传统文件系统与HBASE文件系统的数据存储特点,以分布式内存数据库为辅助存储介质,将文件及目录的存储关系以递归的方式存储在分布式内存中,最小存储单位为文件,单个文件或目录在分布式内存库中有唯一的ID标识,单个文件或目录在分布式内存库中有文件信息状态,文件数据存储在HBASE中,最小存储单位为记录,rowkey的组织形式为“文件唯一索引倒序”加记录唯一索引,value即为文件数据记录。
[0096]以分布式内存库为辅助存储介质,文件级目录的存储关系以递归的方式存储在分布式内存库中;
[0097]分布式内存中最小存储单位为文件,单个文件或目录再分布式内存库中有唯一的ID标识;
[0098]文件数据记录以key-value的形式存储在HBASE中,最小存储单位为记录,rowkey的组织形式为“文件唯一索引倒序”加记录唯一索引,value即为文件数据记录;
[0099]进行
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1