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

文档序号:9350023阅读:来源:国知局
打开目录操作时,需要读取分布式内存库中目录与文件索引的对应关系,查找当前目录下的所有文件及目录;
[0100]进行文件读取操作时,需要读取分布式内存库中文件的状态信息,并从HBASE中获取文件数据记录;
[0101]进行文件写入操作时,需要读取分布式内存库中文件的状态信息,并将文件数据写入HBASE,并更新分布式内存库中文件的状态信息;
[0102]在文件为写入模式下,关闭文件时需要对HBASE写入端进行sflush操作,保证HBASE数据的完整性;
[0103]在进行文件删除时,需要修改分布式内存库中对应的文件状态信息,使其为无效状态,后续由辅助工具进行HBASE中对应数据的删除操作。
[0104]以下为本发明的一个具体实施例:
[0105]业务层需要向虚拟文件系统中读取并存储一个文件,假设文件的目标目录为/test,源文件名称为test, txt,目录文件名称为store, txt ;
[0106]初始化与HBASE文件系统的连接及内存库的连接;
[0107]调用sopendir打开要操作的目录/test ;
[0108]调用sreaddir读取打开目录中的文件或目录信息,读取到文件按test, txt ;
[0109]调用sopen读取模式打开文件/test/test, txt ;
[0110]调用sopen写入模式打开文件/test/store, txt ;
[0111]调用sread读取/test/test, txt中的数据内容;
[0112]调用swrite将读取到的内容写入到/test/store, txt中;
[0113]调用sclose 关闭文件 /test/test, txt ;
[0114]调用sclose 关闭文件 /test/store, txt ;
[0115]调用sclosedir关闭操作目录;
[0116]调用sdestory释放HBASE连接及内存库连接;
[0117]上述操作调用完成后,在分布式内存库中有/test/store, txt这个文件的相关索引信息及文件状态生成,在HBASE中存储了一批记录,这些记录归属于/test/store, txt。
[0118]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于HBASE的虚拟文件系统的实现方法,其特征在于,具体包括以下步骤: 步骤1:对虚拟文件系统和分布式内存库进行初始化连接; 步骤2:打开目录,读取分布式内存库中存储的目录信息,并将目录下的所有文件及子目录加载到内存中; 步骤3:读取目录,并将加载到内存中的所有文件及子目录按序依次返回; 步骤4:打开分布式内存库中的文件,从HBASE中获得读取数据或将数据存储到HBASE中; 步骤5:执行文件关闭操作; 步骤6:关闭目录,结束。2.根据权利要求1所述的一种基于HBASE的虚拟文件系统的实现方法,其特征在于,所述步骤4具体包括以下步骤: 步骤4.1:判断当前操作是否是读取模式,如果是,执行步骤4.2 ;否则,执行步骤4.4 ;步骤4.2:从分布式内存库中查找文件对应的唯一 ID,打开扫描器,利用此ID生成rowkey前缀进行HBASE表扫描,获得扫描数据; 步骤4.3:读取扫描数据,执行步骤5 ; 步骤4.4:当前为写入模式,在分布式内存库中对数据生成唯一 ID,并进行HBASE打开表操作,控制生成的ID生成对应的rowkey前缀; 步骤4.5:将rowkey前缀后追加索引,以此索引为rowkey,以文件记录为关键字将数据存储到HBASE中,执行步骤5。3.根据权利要求2所述的一种虚拟文件系统的操作方法,其特征在于,所述步骤5具体包括以下步骤: 步骤5.1:判断步骤4是否执行读取模式,如果是,执行步骤5.2 ;否则,执行步骤5.3 ; 步骤5.2:关闭步骤4.2中打开的扫描器,执行步骤6 ; 步骤5.3:调用刷新接口,进行HBASE提交操作,保证数据安全性,执行步骤6。4.根据权利要求1所述的一种基于HBASE的虚拟文件系统的实现方法,其特征在于,所述步骤I中文件与目录的索引关系存储在分布式内存库中,虚拟文件系统与分布式内存库建立连接后可获取对应的目录索引关系。5.根据权利要求1所述的一种基于HBASE的虚拟文件系统的实现方法,其特征在于,所述步骤2中打开目录时,需要读取分布式内存库中目录与文件索引的对应关系,查找当前目录下的所有文件及子目录。6.根据权利要求2所述的一种基于HBASE的虚拟文件系统的实现方法,其特征在于,所述步骤4.2中进行文件读取时,需要读取分布式内存库中文件的状态信息,并从HBASE中获取文件数据记录。7.根据权利要求1-6任一项所述的一种基于HBASE的虚拟文件系统的实现方法,其特征在于,进行文件删除时,需要修改分布式内存库中对应的文件状态信息,使其为无效状态,后续由辅助工具进行HBASE中对应数据的删除操作。8.—种基于HBASE的虚拟文件系统,其特征在于,包括连接模块、目录打开模块、目录读取模块、文件打开模块、文件关闭模块和目录关闭模块; 所述连接模块用于对虚拟文件系统和分布式内存库进行初始化连接; 所述目录打开模块用于打开目录,读取分布式内存库中存储的目录信息,并将目录下的所有文件及子目录加载到内存中; 所述目录读取模块用于读取目录,并将加载到内存中的所有文件及子目录按序依次返回分布式内存库; 所述文件打开模块用于打开分布式内存库中的文件,从HBASE中读取数据或将数据存储到HBASE中; 所述文件关闭模块用于执行文件关闭操作; 所述目录关闭模块用于关闭目录,结束。9.根据权利要求7所述的一种基于HBASE的虚拟文件系统,其特征在于,所述文件打开模块包括模式判断模块、读取模块和写入模块; 所述模式判断模块用于判断当前操作是否是读取模式,如果是,触发读取模块;否则,触发写入模块; 所述读取模块用于从分布式内存库中查找文件对应的唯一 ID,打开扫描器,利用此ID生成rowkey前缀进行HBASE表扫描,获得扫描数据;读取扫描数据; 所述写入模块用于在分布式内存库中对数据生成唯一 ID,并进行HBASE打开表操作,控制生成的ID生成对应的rowkey前缀;将rowkey前缀后追加索引,以此索引为rowkey,以文件记录为关键字将数据存储到HBASE中。10.根据权利要求7所述的一种基于HBASE的虚拟文件系统,其特征在于,所述目录打开模块中打开目录时,需要读取分布式内存库中目录与文件索引的对应关系,查找当前目录下的所有文件及子目录;所述读取模块中进行文件读取时,需要读取分布式内存库中文件的状态信息,并从HBASE中获取文件数据记录。
【专利摘要】本发明涉及一种基于HBASE的虚拟文件系统及其实现方法,其中方法包括:步骤1:对虚拟文件系统和分布式内存库进行初始化连接;步骤2:打开目录,将目录下的所有文件及子目录加载到内存中;步骤3:读取目录,将加载到内存中的所有文件及子目录按序依次返回;步骤4:打开分布式内存库中文件,从HBASE中获得读取数据或将数据存储到HBASE中;步骤5:执行文件关闭操作;步骤6:关闭目录,结束。本发明解决了大数据存储过程中,使用HBASE进行大数据存储时,需要对数据存储方法进行大幅度变更的问题。减少了业务层对于数据存储层变更的影响,使得业务系统由传统文件系统存储模式到大数据存储模式的变更更为便捷。
【IPC分类】G06F17/30
【公开号】CN105069091
【申请号】CN201510473964
【发明人】王敏
【申请人】北京思特奇信息技术股份有限公司
【公开日】2015年11月18日
【申请日】2015年8月5日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1