CN104750757B - 一种基于HBase的数据存储方法和设备 - Google Patents
一种基于HBase的数据存储方法和设备 Download PDFInfo
- Publication number
- CN104750757B CN104750757B CN201310753119.1A CN201310753119A CN104750757B CN 104750757 B CN104750757 B CN 104750757B CN 201310753119 A CN201310753119 A CN 201310753119A CN 104750757 B CN104750757 B CN 104750757B
- Authority
- CN
- China
- Prior art keywords
- region
- identification information
- node
- date
- data stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种基于HBase的数据存储方法和设备,包括:接收来自HBase发送的包含了发生故障的Region Server中Region的标识信息的查询请求消息,根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系确定发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息,向HBase发送查询响应消息,使HBase根据查询响应消息重新选择新的Region,并将发生故障的Region内存储的数据转移至新的Region内,有效避免了新的Region在访问原Data Node上的详单数据时出现跨网络访问Data Node的问题。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种基于HBase的数据存储方法和设备。
背景技术
随着通信技术的发展,数据业务详单的数量呈爆发性增长趋势。目前各大运营商采用数据库或文件系统的方式来存储用户的详细话单(以下简称详单),并提供详单的查询;或者通过整合数据库技术与文件系统技术来实现详单的混合存储和查询。
但是当详单的数据量达到TB级甚至PB级别时,目前采用的数据库或文件系统将无法在如此大数据量的情况下支持高并发的详单查询。
HBase(Hadoop Datebase)作为一个基于Hadoop之上的高可靠性、高性能、面向列、可伸缩的分布式存储数据库,适合被引入到详单存储查询场景中来,替代原有数据库或文件系统的方式。在引入HBase技术替代数据库或文件系统存储详单后,整个详单存储系统由一个服务器集群组成。
而HBase的运行需要包含Client组件、Master组件、Region Server组件、Zookeeper组件和HDFS组件。
其中,Client(事件)组件:包含访问HBase的接口,Client维护着一些cache(缓存),加快对HBase的访问,比如Region(区域)的位置信息等。
Master(主机)组件:为Region Server分配Region;负责Region Server的负载均衡;发现失效的Region Server,并重新分配其上的Region;负责HDFS上的垃圾文件回收;处理schema更新请求等。
Region Server(区域服务)组件:Region Server维护Master分配给它的Region,处理对这些Region的IO请求;负责切分在运行过程中变得过大的Region。
其中,Client访问HBase上数据的过程并不需要Master组件参与(寻址访问需要Zookeeper组件和Region Server组件,数据读写访问Region Server组件),Master仅仅维护着Table(表格)和Region(区域)中的元数据信息,负载很低。
Zookeeper组件:保证集群中只有一个Master激活;存贮目录表的寻址入口;实时监控Region Server的状态,将Region Server的上线和下线信息实时通知给Master;存储HBase的schema,包括有哪些表,每个表有哪些列簇。
HDFS组件:Hadoop的分布式文件系统,用于存储分析和查询所需的数据。
需要说明的是,HBase的详单数据加载流程为:当HBase需要进行详单数据加载时,HBase Client首先根据一条记录的RowKey找到对应的Region和Region Server(需要说明的是,Region Server中包含多个Region,而每一个Region对应一个Date Node)。
其次,向该Region Server提交写请求,Region Sever找到目标Region,检查插入详单的数据格式,根据客户端指定的版本作为该条记录的数据版本;
再次,将该条记录写入Hlog,同时写入该Region的MemStore。
需要说明的是,当MemStore超过一定大小时,HBase调用HDFS Client写文件系统,由HDFS Client向Name Node申请新的block,Name Node返回用来存储副本的Data Node列表,HBase根据Name Node返回用来存储副本的Data Node列表,将详单数据分别备份存储在不同的Data Node,其中,备份的一个Data Node与该Region属于同一个物理节点,而存储详单数据的其他Data Node可以是与该Region对应的Region Server属于同一个物理节点中的其他Data Node,还可以是与该Region属于不同物理节点中的其他Data Node。
在实际应用中,当服务器集群的某个Data Node宕机(在大规模集群情况下不可避免)后,与该Data Node对应的Region将被分配到其他Data Node上,而HBase是根据所有Region Server的负载情况,将宕机Data Node对应的Region分配到负载较轻的Data Node上,这样就引出了一个问题:HBase将宕机Data Node对应的Region分配至新的Data Node上之后,使得Region在访问原Data Node上的详单数据时,出现跨网络访问Data Node的情况,不仅使得访问详单数据的速度降低,而且消耗大量的系统资源,降低系统性能。
发明内容
本发明实施例提供了一种基于HBase的数据存储方法和设备,用于解决目前HBase在将宕机Data Node对应的Region分配至新的Data Node上之后,使得Region在访问原DataNode上的详单数据时,出现跨网络访问Data Node的情况,导致访问详单数据的速度降低、系统资源消耗大,且系统性能降低的问题。
一种基于HBase的数据存储方法,包括:
控制设备接收来自Hadoop数据库HBase发送的查询请求消息,其中,所述查询请求消息中包含了发生故障的区域服务器Region Server中区域Region的标识信息;
所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息;
所述控制设备向所述HBase发送查询响应消息,以便于所述HBase根据接收到的所述查询响应消息,重新选择新的Region,并将所述发生故障的Region内存储的数据转移至所述新的Region内;
其中,所述新的Region是所述控制设备确定的多个数据存储副本Date Node的标识信息中,除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的其他多个数据存储副本Date Node的标识信息对应的Region中的其中一个。
Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,包括:
所述控制设备在接收来自Hadoop数据库HBase发送的查询请求消息之前,接收所述HBase发送的Region状态信息,其中,所述Region状态信息中包含了Region的标识信息、存储的数据信息、所述数据信息存储的且与其属于同一个物理节点的数据存储副本的DateNode的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息;
所述控制设备根据接收到的所述Region状态信息,建立Region的标识信息与多个数据存储副本的Date Node的标识信息。
所述控制设备向所述HBase发送查询响应消息,包括:
所述控制设备从确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息中,查找出与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息;并将除了查找出的Date Node的标识信息之外的确定的其他多个数据存储副本Date Node的标识信息携带在查询请求响应消息中发送给所述HBase,以便于所述HBase从接收到其他多个数据存储副本Date Node的标识信息选择其中一个数据存储副本Date Node的标识信息对应的Region作为新的Region。
所述控制设备向所述HBase发送查询响应消息,包括:
所述控制设备将确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息携带在查询响应消息中发送给所述HBase,以便于所述HBase从接收到的多个数据存储副本Date Node的标识信息中查找出与所述发生故障的Region的标识信息对应的Region不属于同一个物理节点的Date Node的标识信息,并从查找出的DateNode的标识信息中确定一个Date Node的标识信息对应的Region作为新的Region。
所述方法还包括:
所述控制设备接收所述HBase发送的Region状态更新信息,其中,所述Region状态更新信息中包含了新的Region的标识信息、存储的数据信息、所述数据信息存储的且与所述新的Region的标识信息属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息;
所述控制设备根据接收到的所述Region状态更新信息,建立所述新的Region的标识信息与多个数据存储副本的Date Node的标识信息的对应关系,并更新Region状态信息列表。
所述方法还包括:
所述控制设备接收到HDFS文件系统发送的节点补充请求消息,其中,所述节点补充请求消息中包含了发生故障的Date Node的标识信息,所述节点补充请求消息是所述HDFS文件系统在检测到所述Date Node故障时发送的;
所述控制设备根据Date Node的标识信息与Region的标识信息之间的对应关系,确定所述发生故障的Date Node的标识信息对应的Region的标识信息,并得到确定的Region的标识信息对应在其他Date Node上存储的备份数据块;
所述控制设备将所述备份数据块携带在节点补充响应消息中发送给所述HDFS文件系统,以便于所述HDFS文件系统将得到的备份数据块存储在除了发生故障的Date Node和已备份了所述备份数据块的Date Node之外的一个Date Node中;
所述控制设备接收所述HDFS文件系统发送的节点补充完毕消息,其中,所述节点补充完毕消息中包含了所述HDFS文件系统将得到的备份数据块存储在除了发生故障的Date Node和已备份了所述备份数据块的Date Node之外的Date Node的标识信息。
一种基于HBase的数据存储方法,包括:
Hadoop数据库HBase确定区域服务器Region Server中区域Region发生故障,并向控制设备发送查询请求消息,其中,所述查询请求消息中包含了发生故障的区域服务器Region Server中区域Region的标识信息;
所述HBase接收所述控制设备发送的查询响应消息,其中,所述查询响应消息是在所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本DateNode的标识信息之后发送的;
所述HBase根据接收到的所述查询响应消息,重新选择新的Region,并将所述发生故障的Region内存储的数据转移至所述新的Region内;
其中,所述新的Region是所述控制设备确定的多个数据存储副本Date Node的标识信息中,除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的其他多个数据存储副本Date Node的标识信息对应的Region中的其中一个。
所述方法还包括:
所述HBase在确定区域服务器Region Server中区域Region发生故障之前,向控制设备发送Region状态信息,其中,所述Region状态信息中包含了Region的标识信息、存储的数据信息、所述数据信息存储的且与其属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息,使得所述控制设备根据接收到的所述Region状态信息,建立Region的标识信息与多个数据存储副本的Date Node的标识信息。
所述查询响应消息中携带了除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的确定的其他多个数据存储副本Date Node的标识信息,其中,所述与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息是所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息,并从确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息中查找到的;
所述HBase根据接收到的所述查询响应消息,重新选择新的Region,包括:
所述HBase从接收到其他多个数据存储副本Date Node的标识信息选择其中一个数据存储副本Date Node的标识信息对应的Region作为新的Region。
所述查询响应消息中携带了所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息,其中,所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息是所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系确定的;
所述HBase根据接收到的所述查询响应消息,重新选择新的Region,包括:
所述HBase从接收到的多个数据存储副本Date Node的标识信息中,查找出与所述发生故障的Region的标识信息对应的Region不属于同一个物理节点的Date Node的标识信息,并从查找出的Date Node的标识信息中确定一个Date Node的标识信息对应的Region作为新的Region。
所述方法还包括:
所述HBase向所述控制设备发送Region状态更新信息,其中,所述Region状态更新信息中包含了新的Region的标识信息、存储的数据信息、所述数据信息存储的且与所述新的Region的标识信息属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息,以便于所述控制设备根据接收到的所述Region状态更新信息,建立所述新的Region的标识信息与多个数据存储副本的Date Node的标识信息的对应关系,并更新Region状态信息列表。
一种基于HBase的数据存储设备,包括:
接收模块,用于接收来自Hadoop数据库HBase发送的查询请求消息,其中,所述查询请求消息中包含了发生故障的区域服务器Region Server中区域Region的标识信息;
确定模块,用于根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息;
发送模块,用于向所述HBase发送查询响应消息,以便于所述HBase根据接收到的所述查询响应消息,重新选择新的Region,并将所述发生故障的Region内存储的数据转移至所述新的Region内;
其中,所述新的Region是所述控制设备确定的多个数据存储副本Date Node的标识信息中,除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的其他多个数据存储副本Date Node的标识信息对应的Region中的其中一个。
所述接收模块,具体用于在接收来自Hadoop数据库HBase发送的查询请求消息之前,接收所述HBase发送的Region状态信息,其中,所述Region状态信息中包含了Region的标识信息、存储的数据信息、所述数据信息存储的且与其属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的DateNode的标识信息;
所述确定模块,具体用于根据接收到的所述Region状态信息,建立Region的标识信息与多个数据存储副本的Date Node的标识信息。
所述发送模块,具体用于从确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息中,查找出与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息;并将除了查找出的Date Node的标识信息之外的确定的其他多个数据存储副本Date Node的标识信息携带在查询请求响应消息中发送给所述HBase,以便于所述HBase从接收到其他多个数据存储副本Date Node的标识信息选择其中一个数据存储副本Date Node的标识信息对应的Region作为新的Region。
所述发送模块,具体用于将确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息携带在查询响应消息中发送给所述HBase,以便于所述HBase从接收到的多个数据存储副本Date Node的标识信息中查找出与所述发生故障的Region的标识信息对应的Region不属于同一个物理节点的Date Node的标识信息,并从查找出的Date Node的标识信息中确定一个Date Node的标识信息对应的Region作为新的Region。
所述设备还包括:
更新模块,用于接收所述HBase发送的Region状态更新信息,其中,所述Region状态更新信息中包含了新的Region的标识信息、存储的数据信息、所述数据信息存储的且与所述新的Region的标识信息属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息;
并根据接收到的所述Region状态更新信息,建立所述新的Region的标识信息与多个数据存储副本的Date Node的标识信息的对应关系,并更新Region状态信息列表。
所述设备还包括:
调整模块,用于接收到HDFS文件系统发送的节点补充请求消息,其中,所述节点补充请求消息中包含了发生故障的Date Node的标识信息,所述节点补充请求消息是所述HDFS文件系统在检测到所述Date Node故障时发送的;
根据Date Node的标识信息与Region的标识信息之间的对应关系,确定所述发生故障的Date Node的标识信息对应的Region的标识信息,并得到确定的Region的标识信息对应在其他Date Node上存储的备份数据块;
将所述备份数据块携带在节点补充响应消息中发送给所述HDFS文件系统,以便于所述HDFS文件系统将得到的备份数据块存储在除了发生故障的Date Node和已备份了所述备份数据块的Date Node之外的一个Date Node中;
接收所述HDFS文件系统发送的节点补充完毕消息,其中,所述节点补充完毕消息中包含了所述HDFS文件系统将得到的备份数据块存储在除了发生故障的Date Node和已备份了所述备份数据块的Date Node之外的Date Node的标识信息。
一种基于HBase的数据存储设备,包括:
发送查询模块,用于确定区域服务器Region Server中区域Region发生故障,并向控制设备发送查询请求消息,其中,所述查询请求消息中包含了发生故障的区域服务器Region Server中区域Region的标识信息;
接收响应模块,用于接收所述控制设备发送的查询响应消息,其中,所述查询响应消息是在所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息之后发送的;
存储模块,用于根据接收到的所述查询响应消息,重新选择新的Region,并将所述发生故障的Region内存储的数据转移至所述新的Region内;
其中,所述新的Region是所述控制设备确定的多个数据存储副本Date Node的标识信息中,除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的其他多个数据存储副本Date Node的标识信息对应的Region中的其中一个。
所述设备还包括:
发送状态模块,用于在确定区域服务器Region Server中区域Region发生故障之前,向控制设备发送Region状态信息,其中,所述Region状态信息中包含了Region的标识信息、存储的数据信息、所述数据信息存储的且与其属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息,使得所述控制设备根据接收到的所述Region状态信息,建立Region的标识信息与多个数据存储副本的Date Node的标识信息。
所述查询响应消息中携带了除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的确定的其他多个数据存储副本Date Node的标识信息,其中,所述与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息是所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息,并从确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息中查找到的;
所述存储模块,具体用于从接收到其他多个数据存储副本Date Node的标识信息选择其中一个数据存储副本Date Node的标识信息对应的Region作为新的Region。
所述查询响应消息中携带了所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息,其中,所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息是所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系确定的;
所述存储模块,具体用于从接收到的多个数据存储副本Date Node的标识信息中,查找出与所述发生故障的Region的标识信息对应的Region不属于同一个物理节点的DateNode的标识信息,并从查找出的Date Node的标识信息中确定一个Date Node的标识信息对应的Region作为新的Region。
所述设备还包括:
发送更新模块,用于向所述控制设备发送Region状态更新信息,其中,所述Region状态更新信息中包含了新的Region的标识信息、存储的数据信息、所述数据信息存储的且与所述新的Region的标识信息属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息,以便于所述控制设备根据接收到的所述Region状态更新信息,建立所述新的Region的标识信息与多个数据存储副本的Date Node的标识信息的对应关系,并更新Region状态信息列表。
本发明有益效果如下:
本发明实施例通过在HBase数据库中增加了一个控制设备,控制设备接收来自HBase发送的包含了发生故障的区域服务器Region Server中区域Region的标识信息的查询请求消息,根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本DateNode的标识信息,并向所述HBase发送查询响应消息,以便于所述HBase根据接收到的所述查询响应消息,重新选择新的Region,并将所述发生故障的Region内存储的数据转移至所述新的Region内,其中,所述新的Region是所述控制设备确定的多个数据存储副本DateNode的标识信息中,除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的其他多个数据存储副本Date Node的标识信息对应的Region中的其中一个,这样,HBase在为发生故障的Region选择新的Region时,依据发生故障的Region数据备份的Date Note进行选择,使得选择新的Region对应的Date Note中备份有发生故障的Region内存储的数据,有效地避免了新的Region在访问原Data Node上的详单数据时,出现跨网络访问Data Node的情况,提高了数据查询的速度,降低了系统资源的消耗,使得系统性能得以提升。
附图说明
图1为本发明实施例一提供的一种基于HBase的数据存储方法的流程示意图;
图2为本发明实施例二提供的一种基于HBase的数据存储方法的流程示意图;
图3为本发明实施例三提供的一种基于HBase的数据存储设备的流程示意图;
图4为本发明实施例四提供的一种基于HBase的数据存储设备的流程示意图;
图5为本发明实施例五提供的一种基于HBase的数据存储系统的流程示意图。
具体实施方式
为了实现本发明的目的,本发明实施例提供了一种基于HBase的数据存储方法和设备,通过在HBase数据库中增加了一个控制设备,控制设备接收来自HBase发送的包含了发生故障的区域服务器Region Server中区域Region的标识信息的查询请求消息,根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息,并向所述HBase发送查询响应消息,以便于所述HBase根据接收到的所述查询响应消息,重新选择新的Region,并将所述发生故障的Region内存储的数据转移至所述新的Region内,其中,所述新的Region是所述控制设备确定的多个数据存储副本Date Node的标识信息中,除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的其他多个数据存储副本Date Node的标识信息对应的Region中的其中一个,这样,HBase在为发生故障的Region选择新的Region时,依据发生故障的Region数据备份的Date Note进行选择,使得选择新的Region对应的Date Note中备份有发生故障的Region内存储的数据,有效地避免了新的Region在访问原Data Node上的详单数据时,出现跨网络访问Data Node的情况,提高了数据查询的速度,降低了系统资源的消耗,使得系统性能得以提升。
需要说明的是,控制设备本地可以预先存储系统状态表(即保存了Region的标识信息对应的多个Date Node数据节点),这样,HBase在调用HDFS Client flush数据到文件系统时,不再由Name Node随机分配多个Date Node来写入数据,而是根据控制设备本地存储的系统状态表,确定数据该写入的Date Node,并将写入后的Date Node通知控制设备,这样能够保证在写入数据的Date Node发生宕机或者重启时,HBase不再简单地根据RegionServer的负载情况随机分配需要的Region,而是根据数据写入的Date Node,将需要重新分配的Region分配到存储了该Region对应的HFlies和WAL log的Date Node上,进一步保证了每一个Region Server管理的Region所对应的HFlies和WAL log有一个副本保存在本地的Date Node上,提升了系统性能,减少了跨网访问的开销。
需要说明的是,本发明实施例的方案可以但不限于应用在详单存储系统中,还可以应用在具备了详单数据量大、实时查询要求比较高的其他数据存储系统中,这里不做具体限定。
下面结合说明书附图对本发明各个实施例进行详细描述。
实施例一:
如图1所示,为本发明实施例一提供的一种基于HBase的数据存储方法的流程示意图,所述方法可以如下所述。
步骤101:控制设备接收来自Hadoop数据库HBase发送的查询请求消息。
其中,所述查询请求消息中包含了发生故障的区域服务器Region Server中区域Region的标识信息。
在步骤101中,在一个节点宕机或者HBase重启时,由于详单存储系统是一个实时查询加载系统,因此需要将分配在故障节点上的Region重新分配到其他Date Note上,以免影响数据的加载。
当HBase在检测到Region Server发生故障时,向控制设备发送查询请求消息,其中,所述查询请求消息用于获取发生故障的Region Server中Region的数据存储的DateNode。
步骤102:所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息。
在步骤102中,所述Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系的建立方式包括:
首先,所述控制设备在接收来自Hadoop数据库HBase发送的查询请求消息之前,接收所述HBase发送的Region状态信息。
其中,所述Region状态信息中包含了Region的标识信息、存储的数据信息、所述数据信息存储的且与其属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息。
例如:Region1,RowKey范围【0,20】,对应的数据分布节点Date Node1,数据存储副本的Date Node2、数据存储副本的Date Node4;
Region2,RowKey范围【21,40】,对应的数据分布节点Date Node2,数据存储副本的Date Node1、数据存储副本的Date Node3。
其次,所述控制设备根据接收到的所述Region状态信息,建立Region的标识信息与多个数据存储副本的Date Node的标识信息。
例如:如表1所示,为建立Region的标识信息与多个数据存储副本的Date Node的标识信息的状态信息列表:
表1
从表1中可以看出,每一个Region对应一个Region分布节点Date Node,也就是说每一个Region和对应的Date Node属于同一个物理节点,即该Date Node属于该Region的本地节点。
需要说明的是,每一个Region对应一个Region分布节点Date Node不限于一个,可以是多个。
具体地,所述控制设备根据建立的Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息。
假设发生故障的Region Server中包含了Region1和Region2,那么此时需要确定Region1的标识信息对应的多个数据存储副本Date Node的标识信息,即Date Node1、DateNode2和Date Node4;此时需要确定Region2的标识信息对应的多个数据存储副本DateNode的标识信息,即Date Node1、Date Node2和Date Node4。
步骤103:所述控制设备向所述HBase发送查询响应消息,以便于所述HBase根据接收到的所述查询响应消息,重新选择新的Region,并将所述发生故障的Region内存储的数据转移至所述新的Region内。
其中,所述新的Region是所述控制设备确定的多个数据存储副本Date Node的标识信息中,除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的其他多个数据存储副本Date Node的标识信息对应的Region中的其中一个。
在步骤103中,所述控制设备向所述HBase发送查询响应消息的方式包括但不限于以下两种:
第一种方式:
所述控制设备从确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息中,查找出与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息;
并将除了查找出的Date Node的标识信息之外的确定的其他多个数据存储副本Date Node的标识信息携带在查询请求响应消息中发送给所述HBase,以便于所述HBase从接收到其他多个数据存储副本Date Node的标识信息选择其中一个数据存储副本DateNode的标识信息对应的Region作为新的Region。
例如:所述控制模块确定Date Node1与Region1属于同一个物理节点,那么将得到Date Node2和Date Node4携带在查询请求响应消息中发送给所述HBase,以便于所述HBase从接收到Date Node2和Date Node4中选择其中一个数据存储副本Date Node的标识信息对应的Region作为新的Region。
第二种方式:
所述控制设备将确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息携带在查询响应消息中发送给所述HBase,以便于所述HBase从接收到的多个数据存储副本Date Node的标识信息中查找出与所述发生故障的Region的标识信息对应的Region不属于同一个物理节点的Date Node的标识信息,并从查找出的DateNode的标识信息中确定一个Date Node的标识信息对应的Region作为新的Region。
例如:所述控制模块将确定Date Node1、Date Node2和Date Node4携带在查询请求响应消息中发送给所述HBase,以便于所述HBase从接收到Date Node1、Date Node2和Date Node4中查找出与Region1属于同一个物理节点的Date Node1,并从剩下的DateNode2和Date Node4中选择其中一个数据存储副本Date Node的标识信息对应的Region作为新的Region。
步骤104:所述控制设备接收所述HBase发送的Region状态更新信息。
其中,所述Region状态更新信息中包含了新的Region的标识信息、存储的数据信息、所述数据信息存储的且与所述新的Region的标识信息属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的DateNode的标识信息。
假设选择的是Date Node2,即将Date Node2对应的Region2作为新的Region。
步骤105:所述控制设备根据接收到的所述Region状态更新信息,建立所述新的Region的标识信息与多个数据存储副本的Date Node的标识信息的对应关系,并更新Region状态信息列表。
在步骤105中,所述控制设备根据接收到的所述Region状态更新信息,建立Region2,RowKey范围【0,20】,对应的数据分布节点Date Node2,数据存储副本的DateNode4之间的对应关系。
步骤106:所述控制设备接收到HDFS文件系统发送的节点补充请求消息。
其中,所述节点补充请求消息中包含了发生故障的Date Node的标识信息,所述节点补充请求消息是所述HDFS文件系统在检测到所述Date Node故障时发送的。
步骤107:所述控制设备根据Date Node的标识信息与Region的标识信息之间的对应关系,确定所述发生故障的Date Node的标识信息对应的Region的标识信息,并得到确定的Region的标识信息对应在其他Date Node上存储的备份数据块。
步骤108:所述控制设备将所述备份数据块携带在节点补充响应消息中发送给所述HDFS文件系统。
以便于所述HDFS文件系统将得到的备份数据块存储在除了发生故障的Date Node和已备份了所述备份数据块的Date Node之外的一个Date Node中。
步骤109:所述控制设备接收所述HDFS文件系统发送的节点补充完毕消息。
其中,所述节点补充完毕消息中包含了所述HDFS文件系统将得到的备份数据块存储在除了发生故障的Date Node和已备份了所述备份数据块的Date Node之外的Date Node的标识信息。
通过本发明实施例一的方案,在HBase数据库中增加了一个控制设备,控制设备接收来自HBase发送的包含了发生故障的区域服务器Region Server中区域Region的标识信息的查询请求消息,根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息,并向所述HBase发送查询响应消息,以便于所述HBase根据接收到的所述查询响应消息,重新选择新的Region,并将所述发生故障的Region内存储的数据转移至所述新的Region内,其中,所述新的Region是所述控制设备确定的多个数据存储副本Date Node的标识信息中,除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的其他多个数据存储副本Date Node的标识信息对应的Region中的其中一个,这样,HBase在为发生故障的Region选择新的Region时,依据发生故障的Region数据备份的Date Note进行选择,使得选择新的Region对应的DateNote中备份有发生故障的Region内存储的数据,有效地避免了新的Region在访问原DataNode上的详单数据时,出现跨网络访问Data Node的情况,提高了数据查询的速度,降低了系统资源的消耗,使得系统性能得以提升。
实施例二:
如图2所示,为本发明实施例二提供的一种基于HBase的数据存储方法的流程示意图,本发明实施例二是与本发明实施例一在同一发明构思下的发明,所述方法可以如下所述。
步骤201:Hadoop数据库HBase确定区域服务器Region Server中区域Region发生故障,并向控制设备发送查询请求消息。
其中,所述查询请求消息中包含了发生故障的区域服务器Region Server中区域Region的标识信息。
在步骤201中,Hadoop数据库HBase确定区域服务器Region Server中区域Region发生故障的方式包括但不限于:
第一:HBase检测到区域服务器Region Server发生故障,此时确定故障区域服务器Region Server中区域Region发生故障,需要将故障Region中的数据迁移到其他Region中。
第二:HBase确定HDFS中某一个Date Node发生故障,此时需要将该Date Node对应的Region进行重新分配,那么确定发生故障的Date Node对应的Region。
需要说明的是,所述HBase在确定区域服务器Region Server中区域Region发生故障之前,向控制设备发送Region状态信息。
其中,所述Region状态信息中包含了Region的标识信息、存储的数据信息、所述数据信息存储的且与其属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息,使得所述控制设备根据接收到的所述Region状态信息,建立Region的标识信息与多个数据存储副本的DateNode的标识信息。
步骤202:所述HBase接收所述控制设备发送的查询响应消息。
其中,所述查询响应消息是在所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息之后发送的。
步骤203:所述HBase根据接收到的所述查询响应消息,重新选择新的Region,并将所述发生故障的Region内存储的数据转移至所述新的Region内。
其中,所述新的Region是所述控制设备确定的多个数据存储副本Date Node的标识信息中,除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的其他多个数据存储副本Date Node的标识信息对应的Region中的其中一个。
在步骤203中,所述查询响应消息中携带了除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的确定的其他多个数据存储副本Date Node的标识信息。
其中,所述与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息是所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息,并从确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息中查找到的。
此时,所述HBase根据接收到的所述查询响应消息,重新选择新的Region,包括:
所述HBase从接收到其他多个数据存储副本Date Node的标识信息选择其中一个数据存储副本Date Node的标识信息对应的Region作为新的Region。
需要说明的是,所述HBase从接收到其他多个数据存储副本Date Node的标识信息选择其中一个数据存储副本Date Node的标识信息的规则可以是:选择负载较小的数据存储副本Date Node的标识信息。
所述查询响应消息中携带了所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息。
其中,所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息是所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系确定的。
所述HBase根据接收到的所述查询响应消息,重新选择新的Region,包括:
所述HBase从接收到的多个数据存储副本Date Node的标识信息中,查找出与所述发生故障的Region的标识信息对应的Region不属于同一个物理节点的Date Node的标识信息,并从查找出的Date Node的标识信息中确定一个Date Node的标识信息对应的Region作为新的Region。
需要说明的是,所述HBase从接收到其他多个数据存储副本Date Node的标识信息选择其中一个数据存储副本Date Node的标识信息的规则可以是:选择负载较小的数据存储副本Date Node的标识信息。
步骤204:所述HBase向所述控制设备发送Region状态更新信息。
其中,所述Region状态更新信息中包含了新的Region的标识信息、存储的数据信息、所述数据信息存储的且与所述新的Region的标识信息属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的DateNode的标识信息,以便于所述控制设备根据接收到的所述Region状态更新信息,建立所述新的Region的标识信息与多个数据存储副本的Date Node的标识信息的对应关系,并更新Region状态信息列表。
实施例三:
如图3所示,为本发明实施例三提供的一种基于HBase的数据存储设备的结构示意图,本发明实施例三是与本发明实施例一和本发明实施例二在同一发明构思下的发明,所述设备包括:接收模块11、确定模块12和发送模块13,其中:
接收模块11,用于接收来自Hadoop数据库HBase发送的查询请求消息,其中,所述查询请求消息中包含了发生故障的区域服务器Region Server中区域Region的标识信息;
确定模块12,用于根据Region的标识信息与多个数据存储副本数据节点DateNode的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息;
发送模块13,用于向所述HBase发送查询响应消息,以便于所述HBase根据接收到的所述查询响应消息,重新选择新的Region,并将所述发生故障的Region内存储的数据转移至所述新的Region内;
其中,所述新的Region是所述控制设备确定的多个数据存储副本Date Node的标识信息中,除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的其他多个数据存储副本Date Node的标识信息对应的Region中的其中一个。
在本发明的另一个实施例中,所述接收模块11,具体用于在接收来自Hadoop数据库HBase发送的查询请求消息之前,接收所述HBase发送的Region状态信息,其中,所述Region状态信息中包含了Region的标识信息、存储的数据信息、所述数据信息存储的且与其属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息;
所述确定模块12,具体用于根据接收到的所述Region状态信息,建立Region的标识信息与多个数据存储副本的Date Node的标识信息。
所述发送模块13,具体用于从确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息中,查找出与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息;并将除了查找出的Date Node的标识信息之外的确定的其他多个数据存储副本Date Node的标识信息携带在查询请求响应消息中发送给所述HBase,以便于所述HBase从接收到其他多个数据存储副本Date Node的标识信息选择其中一个数据存储副本Date Node的标识信息对应的Region作为新的Region。
所述发送模块13,具体用于将确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息携带在查询响应消息中发送给所述HBase,以便于所述HBase从接收到的多个数据存储副本Date Node的标识信息中查找出与所述发生故障的Region的标识信息对应的Region不属于同一个物理节点的Date Node的标识信息,并从查找出的Date Node的标识信息中确定一个Date Node的标识信息对应的Region作为新的Region。
在本发明的另一个实施例中,所述设备还包括:更新模块14,其中:
更新模块14,用于接收所述HBase发送的Region状态更新信息,其中,所述Region状态更新信息中包含了新的Region的标识信息、存储的数据信息、所述数据信息存储的且与所述新的Region的标识信息属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息;并根据接收到的所述Region状态更新信息,建立所述新的Region的标识信息与多个数据存储副本的Date Node的标识信息的对应关系,并更新Region状态信息列表。
在本发明的另一个实施例中,所述设备还包括:调整模块15,其中:
调整模块15,用于接收到HDFS文件系统发送的节点补充请求消息,其中,所述节点补充请求消息中包含了发生故障的Date Node的标识信息,所述节点补充请求消息是所述HDFS文件系统在检测到所述Date Node故障时发送的;
根据Date Node的标识信息与Region的标识信息之间的对应关系,确定所述发生故障的Date Node的标识信息对应的Region的标识信息,并得到确定的Region的标识信息对应在其他Date Node上存储的备份数据块;
将所述备份数据块携带在节点补充响应消息中发送给所述HDFS文件系统,以便于所述HDFS文件系统将得到的备份数据块存储在除了发生故障的Date Node和已备份了所述备份数据块的Date Node之外的一个Date Node中;
接收所述HDFS文件系统发送的节点补充完毕消息,其中,所述节点补充完毕消息中包含了所述HDFS文件系统将得到的备份数据块存储在除了发生故障的Date Node和已备份了所述备份数据块的Date Node之外的Date Node的标识信息。
需要说明的是,本发明实施例四所述的设备是本发明实施例一和本发明实施例二中所述的控制设备,本发明实施例四所述的设备可以通过硬件实现,也可以通过软件实现,这里不做限定。
实施例四:
如图4所示,为本发明实施例四提供的一种基于HBase的数据存储设备的结构示意图,本发明实施例四是与本发明实施例一~本发明实施例三属于同一发明构思下的发明,所述设备包括:发送查询模块21、接收响应模块22和存储模块23,其中:
发送查询模块21,用于确定区域服务器Region Server中区域Region发生故障,并向控制设备发送查询请求消息,其中,所述查询请求消息中包含了发生故障的区域服务器Region Server中区域Region的标识信息;
接收响应模块22,用于接收所述控制设备发送的查询响应消息,其中,所述查询响应消息是在所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息之后发送的;
存储模块23,用于根据接收到的所述查询响应消息,重新选择新的Region,并将所述发生故障的Region内存储的数据转移至所述新的Region内;
其中,所述新的Region是所述控制设备确定的多个数据存储副本Date Node的标识信息中,除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的其他多个数据存储副本Date Node的标识信息对应的Region中的其中一个。
在本发明的另一个实施例中,所述设备还包括:发送状态模块24,其中:
发送状态模块24,用于在确定区域服务器Region Server中区域Region发生故障之前,向控制设备发送Region状态信息,其中,所述Region状态信息中包含了Region的标识信息、存储的数据信息、所述数据信息存储的且与其属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的DateNode的标识信息,使得所述控制设备根据接收到的所述Region状态信息,建立Region的标识信息与多个数据存储副本的Date Node的标识信息。
在本发明的另一个实施例中,所述查询响应消息中携带了除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的确定的其他多个数据存储副本Date Node的标识信息,其中,所述与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息是所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息,并从确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息中查找到的;
所述存储模块23,具体用于从接收到其他多个数据存储副本Date Node的标识信息选择其中一个数据存储副本Date Node的标识信息对应的Region作为新的Region。
在本发明的另一个实施例中,所述查询响应消息中携带了所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息,其中,所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息是所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系确定的;
所述存储模块23,具体用于从接收到的多个数据存储副本Date Node的标识信息中,查找出与所述发生故障的Region的标识信息对应的Region不属于同一个物理节点的Date Node的标识信息,并从查找出的Date Node的标识信息中确定一个Date Node的标识信息对应的Region作为新的Region。
在本发明的另一个实施例中,所述设备还包括:发送更新模块25,其中:
发送更新模块25,用于向所述控制设备发送Region状态更新信息,其中,所述Region状态更新信息中包含了新的Region的标识信息、存储的数据信息、所述数据信息存储的且与所述新的Region的标识信息属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息,以便于所述控制设备根据接收到的所述Region状态更新信息,建立所述新的Region的标识信息与多个数据存储副本的Date Node的标识信息的对应关系,并更新Region状态信息列表。
需要说明的是,本发明实施例四所述的设备与本发明实施例一和本发明实施例二中所述的HBase的功能相同,可以通过硬件的方式实现,也可以是通过软件的方式实现,这里不做限定。
实施例五:
如图5所示,为本发明实例五提供的一种基于HBase的数据存储系统的结构示意图,本发明实施例五是与本发明实施例一至本发明实施例四在同一发明构思下的发明,所述系统包括:控制设备31、HBase数据库32和HDFS文件系统33。
其中,所述控制设备31具备本发明实施例三中所述的全部功能,这里不做赘述。
所述HBase数据库32具备本发明实施例四中所述的全部功能,这里不做赘述。
所述HDFS文件系统33中包含了大量的Date Node。
本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (22)
1.一种基于HBase的数据存储方法,其特征在于,包括:
控制设备接收来自Hadoop数据库HBase发送的查询请求消息,其中,所述查询请求消息中包含了发生故障的区域服务器Region Server中区域Region的标识信息;
所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息;
所述控制设备向所述HBase发送查询响应消息,以便于所述HBase根据接收到的所述查询响应消息,重新选择新的Region,并将所述发生故障的Region内存储的数据转移至所述新的Region内;
其中,所述新的Region是所述控制设备确定的多个数据存储副本Date Node的标识信息中,除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的DateNode的标识信息之外的其他多个数据存储副本Date Node的标识信息对应的Region中的其中一个。
2.如权利要求1所述的方法,其特征在于,Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,包括:
所述控制设备在接收来自Hadoop数据库HBase发送的查询请求消息之前,接收所述HBase发送的Region状态信息,其中,所述Region状态信息中包含了Region的标识信息、存储的数据信息、所述数据信息存储的且与其属于同一个物理节点的数据存储副本的DateNode的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息;
所述控制设备根据接收到的所述Region状态信息,建立Region的标识信息与多个数据存储副本的Date Node的标识信息。
3.如权利要求1所述的方法,其特征在于,所述控制设备向所述HBase发送查询响应消息,包括:
所述控制设备从确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息中,查找出与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息;并将除了查找出的Date Node的标识信息之外的确定的其他多个数据存储副本Date Node的标识信息携带在查询请求响应消息中发送给所述HBase,以便于所述HBase从接收到其他多个数据存储副本Date Node的标识信息选择其中一个数据存储副本Date Node的标识信息对应的Region作为新的Region。
4.如权利要求1所述的方法,其特征在于,所述控制设备向所述HBase发送查询响应消息,包括:
所述控制设备将确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息携带在查询响应消息中发送给所述HBase,以便于所述HBase从接收到的多个数据存储副本Date Node的标识信息中查找出与所述发生故障的Region的标识信息对应的Region不属于同一个物理节点的Date Node的标识信息,并从查找出的Date Node的标识信息中确定一个Date Node的标识信息对应的Region作为新的Region。
5.如权利要求1~4任一所述的方法,其特征在于,所述方法还包括:
所述控制设备接收所述HBase发送的Region状态更新信息,其中,所述Region状态更新信息中包含了新的Region的标识信息、存储的数据信息、所述数据信息存储的且与所述新的Region的标识信息属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息;
所述控制设备根据接收到的所述Region状态更新信息,建立所述新的Region的标识信息与多个数据存储副本的Date Node的标识信息的对应关系,并更新Region状态信息列表。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
所述控制设备接收到HDFS文件系统发送的节点补充请求消息,其中,所述节点补充请求消息中包含了发生故障的Date Node的标识信息,所述节点补充请求消息是所述HDFS文件系统在检测到所述Date Node故障时发送的;
所述控制设备根据Date Node的标识信息与Region的标识信息之间的对应关系,确定所述发生故障的Date Node的标识信息对应的Region的标识信息,并得到确定的Region的标识信息对应在其他Date Node上存储的备份数据块;
所述控制设备将所述备份数据块携带在节点补充响应消息中发送给所述HDFS文件系统,以便于所述HDFS文件系统将得到的备份数据块存储在除了发生故障的Date Node和已备份了所述备份数据块的Date Node之外的一个Date Node中;
所述控制设备接收所述HDFS文件系统发送的节点补充完毕消息,其中,所述节点补充完毕消息中包含了所述HDFS文件系统将得到的备份数据块存储在除了发生故障的DateNode和已备份了所述备份数据块的Date Node之外的Date Node的标识信息。
7.一种基于HBase的数据存储方法,其特征在于,包括:
Hadoop数据库HBase确定区域服务器Region Server中区域Region发生故障,并向控制设备发送查询请求消息,其中,所述查询请求消息中包含了发生故障的区域服务器RegionServer中区域Region的标识信息;
所述HBase接收所述控制设备发送的查询响应消息,其中,所述查询响应消息是在所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息之后发送的;
所述HBase根据接收到的所述查询响应消息,重新选择新的Region,并将所述发生故障的Region内存储的数据转移至所述新的Region内;
其中,所述新的Region是所述控制设备确定的多个数据存储副本Date Node的标识信息中,除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的DateNode的标识信息之外的其他多个数据存储副本Date Node的标识信息对应的Region中的其中一个。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
所述HBase在确定区域服务器Region Server中区域Region发生故障之前,向控制设备发送Region状态信息,其中,所述Region状态信息中包含了Region的标识信息、存储的数据信息、所述数据信息存储的且与其属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息,使得所述控制设备根据接收到的所述Region状态信息,建立Region的标识信息与多个数据存储副本的Date Node的标识信息。
9.如权利要求7~8任一所述的方法,其特征在于,所述查询响应消息中携带了除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的确定的其他多个数据存储副本Date Node的标识信息,其中,所述与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息是所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息,并从确定的所述发生故障的Region的标识信息对应的多个数据存储副本DateNode的标识信息中查找到的;
所述HBase根据接收到的所述查询响应消息,重新选择新的Region,包括:
所述HBase从接收到其他多个数据存储副本Date Node的标识信息选择其中一个数据存储副本Date Node的标识信息对应的Region作为新的Region。
10.如权利要求7~8任一所述的方法,其特征在于,所述查询响应消息中携带了所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息,其中,所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息是所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系确定的;
所述HBase根据接收到的所述查询响应消息,重新选择新的Region,包括:
所述HBase从接收到的多个数据存储副本Date Node的标识信息中,查找出与所述发生故障的Region的标识信息对应的Region不属于同一个物理节点的Date Node的标识信息,并从查找出的Date Node的标识信息中确定一个Date Node的标识信息对应的Region作为新的Region。
11.如权利要求7所述的方法,其特征在于,所述方法还包括:
所述HBase向所述控制设备发送Region状态更新信息,其中,所述Region状态更新信息中包含了新的Region的标识信息、存储的数据信息、所述数据信息存储的且与所述新的Region的标识信息属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息,以便于所述控制设备根据接收到的所述Region状态更新信息,建立所述新的Region的标识信息与多个数据存储副本的Date Node的标识信息的对应关系,并更新Region状态信息列表。
12.一种基于HBase的数据存储设备,其特征在于,包括:
接收模块,用于接收来自Hadoop数据库HBase发送的查询请求消息,其中,所述查询请求消息中包含了发生故障的区域服务器Region Server中区域Region的标识信息;
确定模块,用于根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息;
发送模块,用于向所述HBase发送查询响应消息,以便于所述HBase根据接收到的所述查询响应消息,重新选择新的Region,并将所述发生故障的Region内存储的数据转移至所述新的Region内;
其中,所述新的Region是控制设备确定的多个数据存储副本Date Node的标识信息中,除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的其他多个数据存储副本Date Node的标识信息对应的Region中的其中一个。
13.如权利要求12所述的设备,其特征在于,
所述接收模块,具体用于在接收来自Hadoop数据库HBase发送的查询请求消息之前,接收所述HBase发送的Region状态信息,其中,所述Region状态信息中包含了Region的标识信息、存储的数据信息、所述数据信息存储的且与其属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息;
所述确定模块,具体用于根据接收到的所述Region状态信息,建立Region的标识信息与多个数据存储副本的Date Node的标识信息。
14.如权利要求12所述的设备,其特征在于,
所述发送模块,具体用于从确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息中,查找出与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息;并将除了查找出的Date Node的标识信息之外的确定的其他多个数据存储副本Date Node的标识信息携带在查询请求响应消息中发送给所述HBase,以便于所述HBase从接收到其他多个数据存储副本Date Node的标识信息选择其中一个数据存储副本Date Node的标识信息对应的Region作为新的Region。
15.如权利要求12所述的设备,其特征在于,
所述发送模块,具体用于将确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息携带在查询响应消息中发送给所述HBase,以便于所述HBase从接收到的多个数据存储副本Date Node的标识信息中查找出与所述发生故障的Region的标识信息对应的Region不属于同一个物理节点的Date Node的标识信息,并从查找出的Date Node的标识信息中确定一个Date Node的标识信息对应的Region作为新的Region。
16.如权利要求12~15任一所述的设备,其特征在于,所述设备还包括:
更新模块,用于接收所述HBase发送的Region状态更新信息,其中,所述Region状态更新信息中包含了新的Region的标识信息、存储的数据信息、所述数据信息存储的且与所述新的Region的标识信息属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息;
并根据接收到的所述Region状态更新信息,建立所述新的Region的标识信息与多个数据存储副本的Date Node的标识信息的对应关系,并更新Region状态信息列表。
17.如权利要求16所述的设备,其特征在于,所述设备还包括:
调整模块,用于接收到HDFS文件系统发送的节点补充请求消息,其中,所述节点补充请求消息中包含了发生故障的Date Node的标识信息,所述节点补充请求消息是所述HDFS文件系统在检测到所述Date Node故障时发送的;
根据Date Node的标识信息与Region的标识信息之间的对应关系,确定所述发生故障的Date Node的标识信息对应的Region的标识信息,并得到确定的Region的标识信息对应在其他Date Node上存储的备份数据块;
将所述备份数据块携带在节点补充响应消息中发送给所述HDFS文件系统,以便于所述HDFS文件系统将得到的备份数据块存储在除了发生故障的Date Node和已备份了所述备份数据块的Date Node之外的一个Date Node中;
接收所述HDFS文件系统发送的节点补充完毕消息,其中,所述节点补充完毕消息中包含了所述HDFS文件系统将得到的备份数据块存储在除了发生故障的Date Node和已备份了所述备份数据块的Date Node之外的Date Node的标识信息。
18.一种基于HBase的数据存储设备,其特征在于,包括:
发送查询模块,用于确定区域服务器Region Server中区域Region发生故障,并向控制设备发送查询请求消息,其中,所述查询请求消息中包含了发生故障的区域服务器RegionServer中区域Region的标识信息;
接收响应模块,用于接收所述控制设备发送的查询响应消息,其中,所述查询响应消息是在所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息之后发送的;
存储模块,用于根据接收到的所述查询响应消息,重新选择新的Region,并将所述发生故障的Region内存储的数据转移至所述新的Region内;
其中,所述新的Region是所述控制设备确定的多个数据存储副本Date Node的标识信息中,除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的DateNode的标识信息之外的其他多个数据存储副本Date Node的标识信息对应的Region中的其中一个。
19.如权利要求18所述的设备,其特征在于,所述设备还包括:
发送状态模块,用于在确定区域服务器Region Server中区域Region发生故障之前,向控制设备发送Region状态信息,其中,所述Region状态信息中包含了Region的标识信息、存储的数据信息、所述数据信息存储的且与其属于同一个物理节点的数据存储副本的DateNode的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息,使得所述控制设备根据接收到的所述Region状态信息,建立Region的标识信息与多个数据存储副本的Date Node的标识信息。
20.如权利要求18~19任一所述的设备,其特征在于,所述查询响应消息中携带了除了与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息之外的确定的其他多个数据存储副本Date Node的标识信息,其中,所述与所述发生故障的Region的标识信息对应的Region属于同一个物理节点的Date Node的标识信息是所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系,确定所述发生故障的Region的标识信息对应的多个数据存储副本DateNode的标识信息,并从确定的所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息中查找到的;
所述存储模块,具体用于从接收到其他多个数据存储副本Date Node的标识信息选择其中一个数据存储副本Date Node的标识信息对应的Region作为新的Region。
21.如权利要求18~19任一所述的设备,其特征在于,所述查询响应消息中携带了所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息,其中,所述发生故障的Region的标识信息对应的多个数据存储副本Date Node的标识信息是所述控制设备根据Region的标识信息与多个数据存储副本数据节点Date Node的标识信息之间的对应关系确定的;
所述存储模块,具体用于从接收到的多个数据存储副本Date Node的标识信息中,查找出与所述发生故障的Region的标识信息对应的Region不属于同一个物理节点的Date Node的标识信息,并从查找出的Date Node的标识信息中确定一个Date Node的标识信息对应的Region作为新的Region。
22.如权利要求18所述的设备,其特征在于,所述设备还包括:
发送更新模块,用于向所述控制设备发送Region状态更新信息,其中,所述Region状态更新信息中包含了新的Region的标识信息、存储的数据信息、所述数据信息存储的且与所述新的Region的标识信息属于同一个物理节点的数据存储副本的Date Node的标识信息以及所述数据信息存储的其他至少一个数据存储副本的Date Node的标识信息,以便于所述控制设备根据接收到的所述Region状态更新信息,建立所述新的Region的标识信息与多个数据存储副本的Date Node的标识信息的对应关系,并更新Region状态信息列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310753119.1A CN104750757B (zh) | 2013-12-31 | 2013-12-31 | 一种基于HBase的数据存储方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310753119.1A CN104750757B (zh) | 2013-12-31 | 2013-12-31 | 一种基于HBase的数据存储方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104750757A CN104750757A (zh) | 2015-07-01 |
CN104750757B true CN104750757B (zh) | 2018-05-08 |
Family
ID=53590452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310753119.1A Active CN104750757B (zh) | 2013-12-31 | 2013-12-31 | 一种基于HBase的数据存储方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104750757B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868370A (zh) * | 2016-03-31 | 2016-08-17 | 南京烽火软件科技有限公司 | 读写分离的HBase入库装置及方法 |
CN105893521A (zh) * | 2016-03-31 | 2016-08-24 | 南京烽火软件科技有限公司 | 一种读写分离的HBase入库方法 |
CN107368477B (zh) * | 2016-05-11 | 2021-02-26 | 北京京东尚科信息技术有限公司 | 基于HBase协处理器的类SQL查询的方法和系统 |
CN108933796A (zh) * | 2017-05-22 | 2018-12-04 | 中兴通讯股份有限公司 | 数据存储方法及装置 |
CN109918425A (zh) * | 2017-12-14 | 2019-06-21 | 北京京东尚科信息技术有限公司 | 一种实现数据导入非关系型数据库的方法和系统 |
CN110888919B (zh) * | 2019-12-04 | 2023-06-30 | 阳光电源股份有限公司 | 基于HBase的对大数据统计分析的方法及装置 |
CN111274205B (zh) * | 2020-01-07 | 2024-03-26 | 北京小米松果电子有限公司 | 数据块访问方法及装置、存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693324A (zh) * | 2012-01-09 | 2012-09-26 | 西安电子科技大学 | 一种分布式数据库同步系统、同步方法和节点管理方法 |
CN103237042A (zh) * | 2012-11-16 | 2013-08-07 | 佳都新太科技股份有限公司 | 一种基于xen的弹性云平台存储和调度系统模型 |
CN103259688A (zh) * | 2013-06-04 | 2013-08-21 | 北京搜狐新媒体信息技术有限公司 | 一种分布式存储系统的故障诊断方法与装置 |
CN103383689A (zh) * | 2012-05-03 | 2013-11-06 | 阿里巴巴集团控股有限公司 | 一种服务进程故障检测方法、装置及服务节点 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9842126B2 (en) * | 2012-04-20 | 2017-12-12 | Cloudera, Inc. | Automatic repair of corrupt HBases |
-
2013
- 2013-12-31 CN CN201310753119.1A patent/CN104750757B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693324A (zh) * | 2012-01-09 | 2012-09-26 | 西安电子科技大学 | 一种分布式数据库同步系统、同步方法和节点管理方法 |
CN103383689A (zh) * | 2012-05-03 | 2013-11-06 | 阿里巴巴集团控股有限公司 | 一种服务进程故障检测方法、装置及服务节点 |
CN103237042A (zh) * | 2012-11-16 | 2013-08-07 | 佳都新太科技股份有限公司 | 一种基于xen的弹性云平台存储和调度系统模型 |
CN103259688A (zh) * | 2013-06-04 | 2013-08-21 | 北京搜狐新媒体信息技术有限公司 | 一种分布式存储系统的故障诊断方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104750757A (zh) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104750757B (zh) | 一种基于HBase的数据存储方法和设备 | |
US10642799B2 (en) | Synchronization of client machines with a content management system repository | |
CN102253869B (zh) | 可缩放的容错元数据服务 | |
CN102882983B (zh) | 一种云存储系统中提升并发访问性能的数据快速存储方法 | |
CN101997823B (zh) | 一种分布式文件系统及其数据访问方法 | |
US20130339295A1 (en) | Organizing Data in a Distributed Storage System | |
US20140081911A1 (en) | Optimizing automatic deletion of backup files | |
US20060123121A1 (en) | System and method for service session management | |
JP5686034B2 (ja) | クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム | |
EP2710477B1 (en) | Distributed caching and cache analysis | |
CN113268472B (zh) | 一种分布式数据存储系统及方法 | |
JP5724735B2 (ja) | データベース更新制御装置、データベース管理システムおよびデータベース更新制御プログラム | |
JP2005050165A (ja) | 分散ストレージ装置のファイル管理方法及び分散ストレージシステム | |
US20050004898A1 (en) | Distributed search methods, architectures, systems, and software | |
CN110740155A (zh) | 分布式系统中的请求处理方法及装置 | |
US11055259B2 (en) | Method and system for deleting obsolete files from a file system | |
CN107943615B (zh) | 基于分布式集群的数据处理方法与系统 | |
CN104951475A (zh) | 分布式文件系统和实现方法 | |
KR20130038517A (ko) | 분산된 컨테이너들을 사용하여 데이터를 관리하는 시스템 및 방법 | |
US20130006920A1 (en) | Record operation mode setting | |
US11436193B2 (en) | System and method for managing data using an enumerator | |
CN103389986B (zh) | 存储、查找会话Session信息的方法、装置及系统 | |
CN116389233A (zh) | 容器云管理平台主备切换系统、方法、装置和计算机设备 | |
US9922031B2 (en) | System and method for efficient directory performance using non-persistent storage | |
CN114785662A (zh) | 一种存储管理方法、装置、设备及机器可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |