CN109614271B - 多个集群数据一致性的控制方法、装置、设备及存储介质 - Google Patents
多个集群数据一致性的控制方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109614271B CN109614271B CN201811540604.XA CN201811540604A CN109614271B CN 109614271 B CN109614271 B CN 109614271B CN 201811540604 A CN201811540604 A CN 201811540604A CN 109614271 B CN109614271 B CN 109614271B
- Authority
- CN
- China
- Prior art keywords
- hbase
- cluster
- data
- standby
- writing
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种多个集群数据一致性的控制方法、装置、设备及存储介质,该方法包括步骤:将所获取的待写入数据写入到主Hbase集群中,以及写入到预存的备用集群地址对应的备用Hbase集群中;检测是否存在所述待写入数据写入异常的目标Hbase集群;若检测到存在所述待写入数据写入异常的目标Hbase集群,则对除所述目标Hbase集群外的其它Hbase集群执行回滚操作,以使所述主Hbase集群和备用Hbase集群存储相同的数据。本发明使主Hbase集群和备用Hbase集群中存储相同的数据,保证了主Hbase集群和备用Hbase集群中存储的数据的一致性。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及一种多个集群数据一致性的控制方法、装置、设备及存储介质。
背景技术
随着云计算和大规模数据时代的到来,各种类型的互联网应用层出不穷,特别是以SNS(Social Networking Services,社交网络服务)为代表的社会网络的快速发展,传统的关系型数据库已经越来越无法满足云计算和大数据对处理海量数据、高并发读写速度、可扩展性、高可用性等方面的要求。互联网爆炸式的数据增长导致对海量数据的存储有迫切需求。传统的mysql(关系型数据库管理系统)和orcal在百万级的数据能提供很好的事务能力和读写性能,但随着数据量的增加,mysql和orcal的性能急剧下降。Hbase是基于google bigtable的开源实现,非常适合海量的数据存储,且有较好的随机读写能力。但Hbase自带的复制功能是通过异步线程来实现的,经常会出现连接中断的情况,导致在主Hbase集群和备用Hbase集群中写入数据时,无法保证主Hbase集群和备用Hbase集群中数据的一致性。
发明内容
本发明的主要目的在于提供一种多个集群数据一致性的控制方法、装置、设备及存储介质,旨在解决现有的无法保证主Hbase集群和备用Hbase集群中数据的一致性的技术问题。
为实现上述目的,本发明提供一种多个集群数据一致性的控制方法,所述多个集群数据一致性的控制方法包括步骤:
将所获取的待写入数据写入到主Hbase集群中,以及写入到预存的备用集群地址对应的备用Hbase集群中;
检测是否存在所述待写入数据写入异常的目标Hbase集群;
若检测到存在所述待写入数据写入异常的目标Hbase集群,则对除所述目标Hbase集群外的其它Hbase集群执行回滚操作,以使所述主Hbase集群和备用Hbase集群存储相同的数据。
优选地,所述多个集群数据一致性的控制还包括:
当侦测到在Hbase集群中读取数据的读取指令后,将所述读取指令发送给所述主Hbase集群和所述备用Hbase集群;
将响应所述读取指令响应时长最短的Hbase集群确定为响应Hbase集群,并输出所述响应Hbase集群返回的,与所述读取指令对应的数据。
优选地,所述将所获取的待写入数据写入到主Hbase集群中,以及写入到预存的备用集群地址对应的备用Hbase集群中的步骤之前,还包括:
当侦测到在Hbase集群中写入数据的写入请求后,获取预存的备用集群地址,以及获取所述写入请求对应的待写入数据;
根据所述备用集群地址对应的配置参数修改Hbase客户端源码,得到修改后的所述Hbase客户端源码;
根据所述备用集群地址和修改后的所述Hbase客户端源码建立Hbase客户端与所述备用Hbase集群之间的连接。
优选地,所述根据所述备用集群地址对应的配置参数修改Hbase客户端源码,得到修改后的所述Hbase客户端源码的步骤包括:
根据所述备用集群地址输出修改提示信息,以根据所述修改提示信息提示用户根据所述备用集群地址对应的配置参数触发修改Hbase客户端源码的修改指令;
当侦测到所述修改指令后,根据所述修改指令修改所述Hbase客户端源码,得到修改后的所述Hbase客户端源码。
优选地,所述检测是否存在所述待写入数据写入异常的目标Hbase集群的步骤包括:
检测是否存在预设时长内未返回写入成功消息的Hbase集群;
若检测到存在预设时长内未返回所述写入成功消息的Hbase集群,则确定预设时长内未返回所述写入成功消息的Hbase集群为所述待写入数据写入异常的目标Hbase集群。
优选地,所述检测是否存在所述待写入数据写入异常的目标Hbase集群的步骤之后,还包括:
若检测到不存在所述目标Hbase集群,则生成所述待写入数据写入成功的成功提示消息,并输出所述成功提示消息提示用户所述待写入数据已成功写入所述主Hbase集群和所述备用Hbase集群中。
此外,为实现上述目的,本发明还提供一种多个集群数据一致性的控制装置,所述多个集群数据一致性的控制装置包括:
写入模块,用于将所获取的待写入数据写入到主Hbase集群中,以及写入到预存的备用集群地址对应的备用Hbase集群中;
检测模块,用于检测是否存在所述待写入数据写入异常的目标Hbase集群;
回滚模块,用于若检测到存在所述待写入数据写入异常的目标Hbase集群,则对除所述目标Hbase集群外的其它Hbase集群执行回滚操作,以使所述主Hbase集群和备用Hbase集群存储相同的数据。
此外,为实现上述目的,本发明还提供一种多个集群数据一致性的控制设备,所述多个集群数据一致性的控制设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的多个集群数据一致性的控制程序,所述多个集群数据一致性的控制程序被所述处理器执行时实现如上所述的多个集群数据一致性的控制方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有多个集群数据一致性的控制程序,所述多个集群数据一致性的控制程序被处理器执行时实现如上所述的多个集群数据一致性的控制方法的步骤。
本发明通过将所获取的待写入数据写入到主Hbase集群和备用集群地址对应的备用Hbase集群中,并在检测存在待写入数据写入异常的目标Hbase集群后,对除目标Hbase集群外的其它Hbase集群执行回滚操作,以使主Hbase集群和备用Hbase集群中存储相同的数据,保证了主Hbase集群和备用Hbase集群中存储的数据的一致性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的结构示意图;
图2是本发明多个集群数据一致性的控制方法第一实施例的流程示意图;
图3是本发明多个集群数据一致性的控制方法第二实施例的流程示意图;
图4是本发明多个集群数据一致性的控制方法第三实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的结构示意图。
需要说明的是,图1即可为多个集群数据一致性的控制设备的硬件运行环境的结构示意图。本发明实施例多个集群数据一致性的控制设备可以是PC,便携计算机等终端设备。
如图1所示,该多个集群数据一致性的控制设备可以包括:处理器1001,例如CPU,用户接口1003,网络接口1004,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的多个集群数据一致性的控制设备结构并不构成对多个集群数据一致性的控制设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及多个集群数据一致性的控制程序。其
中,操作系统是管理和控制多个集群数据一致性的控制设备硬件和软件资源的程序,支持多个集群数据一致性的控制程序以及其它软件或程序的运行。
在图1所示的多个集群数据一致性的控制设备中,用户接口1003可用于接收写入请求和/或读取指令等;网络接口1004主要用于连接主Hbase集群和备用Hbase集群等,与主Hbase集群和备用Hbase集群等进行数据通信;而处理器1001可以用于调用存储器1005中存储的多个集群数据一致性的控制程序,并执行以下操作:
将所获取的待写入数据写入到主Hbase集群中,以及写入到预存的备用集群地址对应的备用Hbase集群中;
检测是否存在所述待写入数据写入异常的目标Hbase集群;
若检测到存在所述待写入数据写入异常的目标Hbase集群,则对除所述目标Hbase集群外的其它Hbase集群执行回滚操作,以使所述主Hbase集群和备用Hbase集群存储相同的数据。
进一步地,处理器1001还可以用于调用存储器1005中存储的基于区块链的多个集群数据一致性的控制程序,并执行以下步骤:
当侦测到在Hbase集群中读取数据的读取指令后,将所述读取指令发送给所述主Hbase集群和所述备用Hbase集群;
将响应所述读取指令响应时长最短的Hbase集群确定为响应Hbase集群,并输出所述响应Hbase集群返回的,与所述读取指令对应的数据。
进一步地,所述将所获取的待写入数据写入到主Hbase集群中,以及写入到预存的备用集群地址对应的备用Hbase集群中的步骤之前,处理器1001还可以用于调用存储器1005中存储的基于区块链的多个集群数据一致性的控制程序,并执行以下步骤:
当侦测到在Hbase集群中写入数据的写入请求后,获取预存的备用集群地址,以及获取所述写入请求对应的待写入数据;
根据所述备用集群地址对应的配置参数修改Hbase客户端源码,得到修改后的所述Hbase客户端源码;
根据所述备用集群地址和修改后的所述Hbase客户端源码建立Hbase客户端与所述备用Hbase集群之间的连接。
进一步地,所述根据所述备用集群地址对应的配置参数修改Hbase客户端源码,得到修改后的所述Hbase客户端源码的步骤包括:
根据所述备用集群地址输出修改提示信息,以根据所述修改提示信息提示用户根据所述备用集群地址对应的配置参数触发修改Hbase客户端源码的修改指令;
当侦测到所述修改指令后,根据所述修改指令修改所述Hbase客户端源码,得到修改后的所述Hbase客户端源码。
进一步地,所述检测是否存在所述待写入数据写入异常的目标Hbase集群的步骤包括:
检测是否存在预设时长内未返回写入成功消息的Hbase集群;
若检测到存在预设时长内未返回所述写入成功消息的Hbase集群,则确定预设时长内未返回所述写入成功消息的Hbase集群为所述待写入数据写入异常的目标Hbase集群。
进一步地,所述检测是否存在所述待写入数据写入异常的目标Hbase集群的步骤之后,处理器1001还可以用于调用存储器1005中存储的基于区块链的多个集群数据一致性的控制程序,并执行以下步骤:
若检测到不存在所述目标Hbase集群,则生成所述待写入数据写入成功的成功提示消息,并输出所述成功提示消息提示用户所述待写入数据已成功写入所述主Hbase集群和所述备用Hbase集群中。
基于上述的结构,提出多个集群数据一致性的控制方法的各个实施例。
参照图2,图2为本发明多个集群数据一致性的控制方法第一实施例的流程示意图。
本发明实施例提供了多个集群数据一致性的控制方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
首先,对本发明实施例所需要用到的专业名词进行解释。
①Hadoop:是一个能够对大量数据进行分布式处理的软件框架。Hadoop包括Common,HDFS(Hadoop Distributed File System,分布式文件系统),YARN(Yet AnotherResource Negotiator,另一种资源协调者)和MapReduce四个模块,其中,Common:是可支持其他模块的公共工具;HDFS是用于提供高吞吐访问性能的分布式文件系统;YARN是提供作业调度和集群资源管理的框架;MapReduce是数据并行计算框架,简称MR。
②Hbase:HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为Java。它是Apache软件基金会的Hadoop项目的一部分,运行于HDFS文件系统之上,为Hadoop提供类似于BigTable规模的服务。因此,它可以容错地存储海量稀疏的数据。Hbase对数据存储管理包括两方面:一是元数据的管理、二是数据的管理。
其中,元数据:Hbase将相应的region信息存储在meta表中,客户端的读写每次都会先读meta表找到响应region所在的服务器,进而通过RPC(Remote Procedure Call,远程过程调用)直接进行读写操作。
数据:Hbase的数据存储在HDFS中,是以严格的字典序、以hfile为最小文件单元存储。
③ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。
多个集群数据一致性的控制方法应用于服务器或者终端中,终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(PersonalDigital Assistant,PDA)等移动终端,以及诸如数字TV、台式计算机等固定终端。多个集群数据一致性的控制方法的各个实施例中,为了便于描述,以Hbase客户端为执行主体进行阐述各个实施例,所述Hbase客户端即上文所述的多个集群数据一致性的控制设备。多个集群数据一致性的控制方法包括:
步骤S10,将所获取的待写入数据写入到主Hbase集群中,以及写入到预存的备用集群地址对应的备用Hbase集群中。
当Hbase客户端获取到待写入数据后,Hbase客户端将所获取的待写入数据写入到主Hbase集群中,以及将待写入数据写入到预先存储的至少一个备用集群地址对应的备用Hbase集群中。在本发明实施例中,一个备用集群地址对应一个备用Hbase集群,预存的备用集群地址可以是一个或多个,具体根据实际情况设置,此处不做限定。
需要说明的是,备用集群地址是存储至Hbase客户端的配置文件(Hbase-site.xml)中的,Hbase客户端通过Hbase-site.xml中的第一参数(Hbase.zookeeper.quorum)和第二参数(zookeeper.znode.parent)这两个参数来连接Hbase集群,以进行正常的数据读写操作。其中,Hbase.zookeeper.quorum是重要的也是必须设置的参数,是启动zookeeper的服务器列表,采用逗号分隔,cluster(集群)模式下必须设置,Hbase客户端也需要设置这个值去访问zookeeper。如果在集群外部的配置文件Hbase-env.sh中设置了Hbase_MANAGES_zookeeper,这些zookeeper节点就会和HBase一起启动。zookeeper.znode.parent:znode用于存放root region的地址,默认root-region-server;zookeeper中的HBase的根是znode。所有的HBase的zookeeper会用这个目录配置相对路径。默认情况下,所有的HBase的zookeeper文件路径是用相对路径的。
在本发明实施例中,为了将待写入数据同时写入多个Hbase集群中,在Hbase-site.xml配置了多套配置参数,即在Hbase-site.xml配置了多个备用集群地址,多个Hbase.zookeeper.quorum和zookeeper.znode.parent。需要说明的是,每一个备用Hbase集群都会存在对应的备用集群地址、Hbase.zookeeper.quorum和zookeeper.znode.parent。在本发明实施例中,为了能正确连接到各个备用Hbase集群,需要保证每一个备用Hbase集群对应的备用集群地址、Hbase.zookeeper.quorum和zookeeper.znode.parent组合成的字符串是不一样的,即在各个备用Hbase集群中,允许备用集群地址、Hbase.zookeeper.quorum和zookeeper.znode.parent这三个参数中存在相同的参数,但不允许三个参数都一样。可以理解的是,在Hbase-site.xml中,同样配置有主Hbase集群对应的集群地址、Hbase.zookeeper.quorum和zookeeper.znode.parent。
步骤S20,检测是否存在所述待写入数据写入异常的目标Hbase集群。
当将待写入数据写入主Hbase集群和备用Hbase集群中后,Hbase客户端检测是否存在未能成功写入待写入数据的Hbase集群,即检测是否存在待写入数据写入异常的Hbase集群,并将待写入数据写入异常的Hbase集群记为目标Hbase集群。
进一步地,步骤S20包括:
步骤a,检测是否存在预设时长内未返回写入成功消息的Hbase集群。
步骤b,若检测到存在预设时长内未返回所述写入成功消息的Hbase集群,则确定预设时长内未返回所述写入成功消息的Hbase集群为所述待写入数据写入异常的目标Hbase集群。
进一步地,Hbase客户端检测是否存在待写入数据写入异常的目标Hbase集群的过程为:检测是否在预设时长内未返回写入成功消息的Hbase集群。其中,预设时长可根据具体需要而设置,如可设置为1秒、3秒或者4秒等。若检测到存在预设时长内未返回写入成功消息的Hbase集群,则确定预设时长内未返回写入成功消息的Hbase集群为待写入数据写入异常的目标Hbase集群。可以理解的是,目标Hbase集群可能是主Hbase集群,也可能是备用Hbase集群。在本发明实施例中,每个Hbase集群都存在一个唯一的集群标识,在Hbase集群生成写入成功消息时,该写入成功消息会携带该Hbase集群的集群标识,因此,通过写入成功消息携带的集群标识即可确定预设时长内未返回写入成功消息的Hbase集群。
需要说明的是,当Hbase客户端将待写入数据写入主Hbase集群和备用Hbase集群后,若待写入数据成功写入主Hbase集群和备用Hbase集群中,则主Hbase集群和备用Hbase集群会生成写入成功消息,并将该写入成功消息返回给Hbase客户端;若待写入数据没有成功写入主Hbase集群中,主Hbase集群会生成写入失败消息,并将该写入失败消息返回给Hbase客户端,或者主Hbase集群不反馈写入成功信息,以便Hbase客户端在默认时间内没收到反馈即可确定主Hbase集群写入失败;若待写入数据没有成功写入备用Hbase集群中,备用Hbase集群会生成写入失败消息,并将该写入失败消息返回给Hbase客户端,或者备用Hbase集群不反馈写入成功信息,以便Hbase客户端在默认时间内没收到反馈即可确定备用Hbase集群写入失败。可以理解的是,当Hbase客户端和Hbase集群连接失败或者待写入数据写入Hbase集群写入异常,都会导致Hbase客户端接收不到对应Hbase集群返回的写入成功消息。
步骤S30,若检测到存在所述待写入数据写入异常的目标Hbase集群,则对除所述目标Hbase集群外的其它Hbase集群执行回滚操作,以使所述主Hbase集群和备用Hbase集群存储相同的数据。
若Hbase客户端检测到存在待写入数据写入异常的目标Hbase集群,Hbase客户端则确定除目标Hbase集群外的其它Hbase集群,对目标Hbase集群外的其它Hbase集群执行回滚操作,使该其它Hbase集群中的数据回滚至待写入数据写入之前,以使主Hbase集群和备用Hbase集群中存储相同的数据,即使主Hbase集群和备用Hbase集群中存储的数据保持一致。需要说明的是,由于Hbase不存在更新的概念,在将待写入数据写入Hbase集群过程中,是将待写入数据以覆盖的形式写入。在Hbase客户端将待写入数据写入主Hbase集群和备用Hbase集群过程中,只有在Hbase客户端与主Hbase集群和备用Hbase集群都成功建立连接后,Hbase客户端才会将待写入数据写入主Hbase集群和备用Hbase集群中。
为了便于理解回滚操作,以下以主Hbase集群作为目标Hbase集群,备用Hbase集群作为除目标Hbase集群外的其它Hbase集群举例说明回滚操作。如当需要将第二版本的A数据写入到主Hbase集群和备用Hbase集群中(主Hbase集群和备用Hbase集群中都存储有第一版本的A数据),若待写入数据在主Hbase集群中写入失败,在备用Hbase集群中写入成功,则需要将备用Hbase集群中新写入的第二版本的A数据删除,以保证主Hbase集群和备用Hbase集群中都只存储了第一版本的A数据。
进一步地,所述多个集群数据一致性的控制方法还包括
步骤c,若检测到不存在所述目标Hbase集群,则生成所述待写入数据写入成功的成功提示消息,并输出所述成功提示消息提示用户所述待写入数据已成功写入所述主Hbase集群和所述备用Hbase集群中。
进一步地,若检测到不存在预设时长内未返回写入成功消息的Hbase集群,即不存在目标Hbase集群,Hbase客户端则生成待写入数据写入成功的成功提示消息,并输出该成功提示消息,根据该成功提示消息提示用户待写入数据已成功写入主Hbase集群和备用Hbase集群中。其中,成功提示消息的输出方法包括但不限于文字输出和语音输出。
本实施例通过将所获取的待写入数据写入到主Hbase集群和备用集群地址对应的备用Hbase集群中,并在检测存在待写入数据写入异常的目标Hbase集群后,对除目标Hbase集群外的其它Hbase集群执行回滚操作,以使主Hbase集群和备用Hbase集群中存储相同的数据,保证了主Hbase集群和备用Hbase集群中存储的数据的一致性。
进一步地,提出本发明多个集群数据一致性的控制方法第二实施例。
所述多个集群数据一致性的控制方法第二实施例与所述多个集群数据一致性的控制方法第一实施例的区别在于,参照图3,多个集群数据一致性的控制方法还包括:
步骤S40,当侦测到在Hbase集群中读取数据的读取指令后,将所述读取指令发送给所述主Hbase集群和所述备用Hbase集群。
当Hbase客户端侦测到在Hbase集群中读取数据的读取指令后,Hbase客户端将读取指令发送给主Hbase集群和备用Hbase集群。其中,读取指令可为用户根据具体需要而触发的,也可为Hbase客户端中预先设置好的定时任务触发的。
步骤S50,将响应所述读取指令响应时长最短的Hbase集群确定为响应Hbase集群,并输出所述响应Hbase集群返回的,与所述读取指令对应的数据。
当将读取指令发送给主Hbase集群和备用Hbase集群后,Hbase客户端计算接收到读取指令的主Hbase集群和备用Hbase集群响应读取指令的响应时长,将响应该读取指令响应时长最短的Hbase集群确定为响应Hbase集群,并输出响应Hbase集群返回的,与读取指令对应的数据。具体地,Hbase客户端在将读取指令发送给主Hbase集群和备用Hbase集群后,确定发送读取指令的发送时间,在接收到Hbase集群响应读取指令后返回的数据时,根据所接收的数据携带的集群标识确定该数据具体是哪个Hbase集群返回的,并计算接收到该数据的接收时间与发送时间之间的时间差,该时间差即为对应Hbase集群的响应时长。需要说明的是,每个Hbase集群都存在一个唯一的集群标识,通过该集群标识可区分各个不同的Hbase集群。可以理解的是,响应Hbase集群可能是主Hbase集群,也可能是备用Hbase集群。
进一步地,若Hbase客户端接收到多个Hbase集群返回的数据,Hbase客户端可删除除响应Hbase集群外其它Hbase集群返回的数据。进一步地,在Hbase客户端接收到响应Hbase集群返回的数据后,Hbase客户端也可中断其与其它Hbase集群的连接,以避免重复接收到读取指令对应的数据。
进一步地,若该读取指令为用户通过其手持的另一终端发送给Hbase客户端的,Hbase客户端在确定响应Hbase集群后,会将响应Hbase集群返回的,与读取指令对应的数据发送给用户对应的终端。当用户对应终端接收到读取指令对应的数据后,输出所接收的数据,以便用户查看。
需要说明的是,在本发明实施例中不限制步骤S40、步骤S50与步骤S10、步骤S20、步骤S30之间的执行先后顺序,可先执行步骤S40和步骤S50,然后再执行步骤S10、步骤S20和步骤S30,也可先执行步骤S10,然后执行步骤S40和步骤S50,最后执行步骤S20和步骤S30。
本实施例通过当侦测到在Hbase集群中读取数据的读取指令后,将读取指令发送给主Hbase集群和备用Hbase集群,将响应读取指令的响应时长最短的Hbase集群确定为响应Hbase集群,并输出响应Hbase集群返回的,与读取指令对应的数据,提高了在Hbase集群中读取数据的读取效率,充分利用了主Hbase集群和备用Hbase集群的数据读写能力。
进一步地,提出本发明多个集群数据一致性的控制方法第三实施例。
所述多个集群数据一致性的控制方法第三实施例与所述多个集群数据一致性的控制方法第一或第二实施例的区别在于,参照图4,多个集群数据一致性的控制方法还包括:
步骤S60,当侦测到在Hbase集群中写入数据的写入请求后,获取预存的备用集群地址,以及获取所述写入请求对应的待写入数据。
当侦测到在Hbase集群中写入数据的写入请求后,Hbase客户端获取预先存储的备用集群地址,以及获取写入请求对应的待写入数据。该写入请求可为用户通过其所持终端触发的写入请求,由用户所持终端发送给Hbase客户端的,也可为用户在Hbase客户端中触发的,或者为Hbase客户端中的定时任务触发的。如当用户在其所持终端中触发一个支付请求时,与用户所持终端存在连接的Hbase客户端会接收到写入与支付请求对应待写入数据的写入请求,此时,支付请求对应的待写入数据可为触发支付请求对应资金的支出账户,接收该资金的接收账户,以及该资金的金额和支付时间等。
步骤S70,根据所述备用集群地址对应的配置参数修改Hbase客户端源码,得到修改后的所述Hbase客户端源码。
当Hbase客户端获取到备用集群地址后,Hbase客户端根据备用集群地址对应的配置参数修改其源码,得到修改后的Hbase客户端源码。具体地,若在Hbase客户端源码中设置了固定位置填写备用集群地址对应的配置参数,Hbase客户端在获取到备用集群地址对应的配置参数后,可自动触发修改指令修改Hbase客户端源码,得到修改后的Hbase客户端源码。可以理解的是,修改Hbase客户端源码是将备用集群地址对应的配置参数添加到Hbase客户端源码中,以便于在Hbase客户端需要连接备用Hbase集群时,通过备用集群地址和源码中对应的配置参数与备用Hbase集群建立连接。需要说明的是,每一备用集群地址都存在对应的配置参数。
进一步地,步骤S70包括:
步骤d,根据所述备用集群地址输出修改提示信息,以根据所述修改提示信息提示用户根据所述备用集群地址对应的配置参数触发修改Hbase客户端源码的修改指令。
步骤e,当侦测到所述修改指令后,根据所述修改指令修改所述Hbase客户端源码,得到修改后的所述Hbase客户端源码。
Hbase客户端在获取到备用集群地址对应的配置参数后,Hbase客户端根据备用集群地址输出修改提示信息,以根据该修改提示信息提示用户根据该备用集群地址对应的配置参数修改Hbase客户端的源码。当Hbase客户端侦测到用户触发的根据配置参数修改Hbase客户端源码的修改指令后,Hbase客户端根据该修改指令修改Hbase客户端源码,得到修改后的Hbase客户端源码。
步骤S80,根据所述备用集群地址和修改后的所述Hbase客户端源码建立Hbase客户端与所述备用Hbase集群之间的连接。
当得到修改后的Hbase客户端源码后,Hbase客户端根据备用集群地址和修改后的Hbase客户端源码建立其与备用Hbase集群之间的通信连接,具体地,根据备用集群地址和修改后Hbase客户端源码中的配置参数建立Hbase客户端与备用Hbase集群之间的连接。可以理解的是,在Hbase客户端中,存储有主集群地址和对应的配置参数,根据该主集群地址和对应的配置参数可建立Hbase客户端和主Hbase集群之间的通信连接。
本发明实施例通过当侦测到在Hbase集群中写入数据的写入请求后,获取预存的备用集群地址,以及获取写入请求对应的待写入数据,根据备用集群地址对应的配置参数修改Hbase客户端源码得到修改后的Hbase客户端源码,根据备用集群地址和修改后的Hbase客户端源码建立Hbase客户端与备用Hbase集群之间的连接,以便于在将待写入数据写入主Hbase集群和备用Hbase集群过程中,成功将待写入数据写入备用Hbase集群中。
需要说明的是,除了修改Hbase客户端源码建立Hbase客户端与备用Hbase集群之间的连接,也可修改Hbase服务器代码实现Hbase客户端与备用Hbase集群之间的连接。具体地,开发协处理器插件,通过处理器插件拦截主Hbase集群的写入操作,并待写入数据同步写入备用Hbase集群和主Hbase集群中,但修改Hbase服务器代码的方法会涉及Hbase服务器的源代码,需要备用Hbase集群和主Hbase集群进行重启生效,且对Hbase源码耦合太过于紧密,实现上难度比修改Hbase客户端源码复杂。
需要说明的是,相对于MySQL,本发明在Hbase集群中读写数据响应速度快,MySQL为严格的传统关系数据库,虽然能提供严格的事务管理能力,但在存储容量很受局限,当表级别达到百万行后,就会出现读写响应很慢的情况;相对于TiDB,本发明能更好地与hadoop生态圈的结合。TiDB兼容MySQL,支持无限的水平扩展,具备强一致性和高可用性。TiDB的目标是为OLTP(Online Transactional Processing)和OLAP(Online AnalyticalProcessing)场景提供一站式的解决方案,但与hadoop生态圈较难结合。
此外,本发明实施例还提出一种多个集群数据一致性的控制装置,所述多个集群数据一致性的控制装置包括:
写入模块,用于将所获取的待写入数据写入到主Hbase集群中,以及写入到预存的备用集群地址对应的备用Hbase集群中;
检测模块,用于检测是否存在所述待写入数据写入异常的目标Hbase集群;
回滚模块,用于若检测到存在所述待写入数据写入异常的目标Hbase集群,则对除所述目标Hbase集群外的其它Hbase集群执行回滚操作,以使所述主Hbase集群和备用Hbase集群存储相同的数据。
进一步地,所述多个集群数据一致性的控制装置还包括:
发送模块,用于当侦测到在Hbase集群中读取数据的读取指令后,将所述读取指令发送给所述主Hbase集群和所述备用Hbase集群;
确定模块,用于将响应所述读取指令响应时长最短的Hbase集群确定为响应Hbase集群;
第一输出模块,用于输出所述响应Hbase集群返回的,与所述读取指令对应的数据。
进一步地,所述多个集群数据一致性的控制装置还包括:
获取模块,用于当侦测到在Hbase集群中写入数据的写入请求后,获取预存的备用集群地址,以及获取所述写入请求对应的待写入数据;
修改模块,用于根据所述备用集群地址对应的配置参数修改Hbase客户端源码,得到修改后的所述Hbase客户端源码;
建立模块,用于根据所述备用集群地址和修改后的所述Hbase客户端源码建立Hbase客户端与所述备用Hbase集群之间的连接。
进一步地,所述修改模块包括:
输出单元,用于根据所述备用集群地址输出修改提示信息,以根据所述修改提示信息提示用户根据所述备用集群地址对应的配置参数触发修改Hbase客户端源码的修改指令;
修改单元,用于当侦测到所述修改指令后,根据所述修改指令修改所述Hbase客户端源码,得到修改后的所述Hbase客户端源码。
进一步地,所述检测模块包括:
检测单元,用于检测是否存在预设时长内未返回写入成功消息的Hbase集群;
确定单元,用于若检测到存在预设时长内未返回所述写入成功消息的Hbase集群,则确定预设时长内未返回所述写入成功消息的Hbase集群为所述待写入数据写入异常的目标Hbase集群。
进一步地,所述多个集群数据一致性的控制装置还包括:
生成模块,用于若检测到不存在所述目标Hbase集群,则生成所述待写入数据写入成功的成功提示消息;
第二输出模块,用于输出所述成功提示消息提示用户所述待写入数据已成功写入所述主Hbase集群和所述备用Hbase集群中。
本发明多个集群数据一致性的控制装置具体实施方式与上述多个集群数据一致性的控制方法各实施例基本相同,在此不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有多个集群数据一致性的控制程序,所述多个集群数据一致性的控制程序被处理器执行时实现如上所述的多个集群数据一致性的控制方法的步骤。
本发明计算机可读存储介质具体实施方式与上述多个集群数据一致性的控制方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种多个集群数据一致性的控制方法,其特征在于,所述多个集群数据一致性的控制方法包括以下步骤:
将所获取的待写入数据写入到主Hbase集群中,以及写入到预存的备用集群地址对应的备用Hbase集群中;
检测是否存在所述待写入数据写入异常的目标Hbase集群;
若检测到存在所述待写入数据写入异常的目标Hbase集群,则对除所述目标Hbase集群外的其它Hbase集群执行回滚操作,以使所述主Hbase集群和备用Hbase集群存储相同的数据;
其中,所述将所获取的待写入数据写入到主Hbase集群中,以及写入到预存的备用集群地址对应的备用Hbase集群中的步骤之前,还包括:
当侦测到在Hbase集群中写入数据的写入请求后,获取预存的备用集群地址,以及获取所述写入请求对应的待写入数据;
根据所述备用集群地址输出修改提示信息,以根据所述修改提示信息提示用户根据所述备用集群地址对应的配置参数触发修改Hbase客户端源码的修改指令;
当侦测到所述修改指令后,根据所述修改指令修改所述Hbase客户端源码,得到修改后的所述Hbase客户端源码;
根据所述备用集群地址和修改后的所述Hbase客户端源码建立Hbase客户端与所述备用Hbase集群之间的连接;
所述检测是否存在所述待写入数据写入异常的目标Hbase集群,包括:
检测是否存在预设时长内未返回写入成功消息的Hbase集群;
若检测到存在预设时长内未返回所述写入成功消息的Hbase集群,则确定预设时长内未返回所述写入成功消息的Hbase集群为所述待写入数据写入异常的目标Hbase集群。
2.如权利要求1所述的多个集群数据一致性的控制方法,其特征在于,所述多个集群数据一致性的控制方法还包括:
当侦测到在Hbase集群中读取数据的读取指令后,将所述读取指令发送给所述主Hbase集群和所述备用Hbase集群;
将响应所述读取指令响应时长最短的Hbase集群确定为响应Hbase集群,并输出所述响应Hbase集群返回的,与所述读取指令对应的数据。
3.如权利要求1或2所述的多个集群数据一致性的控制方法,其特征在于,所述检测是否存在所述待写入数据写入异常的目标Hbase集群的步骤之后,还包括:
若检测到不存在所述目标Hbase集群,则生成所述待写入数据写入成功的成功提示消息,并输出所述成功提示消息提示用户所述待写入数据已成功写入所述主Hbase集群和所述备用Hbase集群中。
4.一种多个集群数据一致性的控制装置,其特征在于,所述多个集群数据一致性的控制装置包括:
写入模块,用于将所获取的待写入数据写入到主Hbase集群中,以及写入到预存的备用集群地址对应的备用Hbase集群中;
检测模块,用于检测是否存在所述待写入数据写入异常的目标Hbase集群;
回滚模块,用于若检测到存在所述待写入数据写入异常的目标Hbase集群,则对除所述目标Hbase集群外的其它Hbase集群执行回滚操作,以使所述主Hbase集群和备用Hbase集群存储相同的数据;
获取模块,用于当侦测到在Hbase集群中写入数据的写入请求后,获取预存的备用集群地址,以及获取所述写入请求对应的待写入数据;
修改模块,用于根据所述备用集群地址输出修改提示信息,以根据所述修改提示信息提示用户根据所述备用集群地址对应的配置参数触发修改Hbase客户端源码的修改指令;当侦测到所述修改指令后,根据所述修改指令修改所述Hbase客户端源码,得到修改后的所述Hbase客户端源码;
建立模块,用于根据所述备用集群地址和修改后的所述Hbase客户端源码建立Hbase客户端与所述备用Hbase集群之间的连接;
所述检测模块包括:
检测单元,用于检测是否存在预设时长内未返回写入成功消息的Hbase集群;
确定单元,用于若检测到存在预设时长内未返回所述写入成功消息的Hbase集群,则确定预设时长内未返回所述写入成功消息的Hbase集群为所述待写入数据写入异常的目标Hbase集群。
5.一种多个集群数据一致性的控制设备,其特征在于,所述多个集群数据一致性的控制设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的多个集群数据一致性的控制程序,所述多个集群数据一致性的控制程序被所述处理器执行时实现如权利要求1至3中任一项所述的多个集群数据一致性的控制方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有多个集群数据一致性的控制程序,所述多个集群数据一致性的控制程序被处理器执行时实现如权利要求1至3中任一项所述的多个集群数据一致性的控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811540604.XA CN109614271B (zh) | 2018-12-14 | 2018-12-14 | 多个集群数据一致性的控制方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811540604.XA CN109614271B (zh) | 2018-12-14 | 2018-12-14 | 多个集群数据一致性的控制方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109614271A CN109614271A (zh) | 2019-04-12 |
CN109614271B true CN109614271B (zh) | 2023-06-13 |
Family
ID=66010234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811540604.XA Active CN109614271B (zh) | 2018-12-14 | 2018-12-14 | 多个集群数据一致性的控制方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614271B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471884A (zh) * | 2019-08-19 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 数据管理方法、装置、设备、系统及计算机可读存储介质 |
CN111625391B (zh) * | 2020-05-29 | 2023-06-13 | 北京思特奇信息技术股份有限公司 | 一种任务处理方法、系统和电子设备 |
CN111400108A (zh) * | 2020-06-09 | 2020-07-10 | 四川新网银行股份有限公司 | 搭建HBase灾备集群的方法 |
CN111966699A (zh) * | 2020-07-09 | 2020-11-20 | 微民保险代理有限公司 | 校验数据的方法、装置、计算机设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577680A (zh) * | 2016-07-05 | 2018-01-12 | 滴滴(中国)科技有限公司 | 基于HBase大数据的实时全文检索系统及其实现方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140337491A1 (en) * | 2013-05-08 | 2014-11-13 | Box, Inc. | Repository redundancy implementation of a system which incrementally updates clients with events that occurred via a cloud-enabled platform |
CN107547607B (zh) * | 2016-06-24 | 2020-12-25 | 杭州海康威视数字技术股份有限公司 | 一种集群迁移方法及装置 |
CN106484565B (zh) * | 2016-09-22 | 2019-06-28 | 华为数字技术(成都)有限公司 | 多数据中心间的数据同步方法及相关设备 |
CN108881379B (zh) * | 2018-05-03 | 2021-04-16 | 网宿科技股份有限公司 | 一种服务器集群间数据同步的方法和装置 |
-
2018
- 2018-12-14 CN CN201811540604.XA patent/CN109614271B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577680A (zh) * | 2016-07-05 | 2018-01-12 | 滴滴(中国)科技有限公司 | 基于HBase大数据的实时全文检索系统及其实现方法 |
Non-Patent Citations (1)
Title |
---|
基于 HBase 的地理分布副本管理机制;李勇;吴立慧;黄宁;吴维刚;计算机应用;第35卷(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109614271A (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614271B (zh) | 多个集群数据一致性的控制方法、装置、设备及存储介质 | |
US11093377B2 (en) | Systems and methods for testing source code | |
US8875120B2 (en) | Methods and apparatus for providing software bug-fix notifications for networked computing systems | |
US20180365254A1 (en) | Method and apparatus for processing information flow data | |
US10257110B2 (en) | Using a template to update a stack of resources | |
US9953639B2 (en) | Voice recognition system and construction method thereof | |
US11531573B2 (en) | Asynchronous C#-JS data binding bridge | |
CN111143382B (zh) | 数据处理方法、系统和计算机可读存储介质 | |
US10977011B2 (en) | Structured development for web application frameworks | |
US10956667B2 (en) | Operational transformations proxy for thin clients | |
US20170017669A1 (en) | Database integration of originally decoupled components | |
CN111324606B (zh) | 数据分片的方法及装置 | |
US20130318055A1 (en) | Cache conflict detection | |
CN110955409B (zh) | 在云平台上创建资源的方法和装置 | |
CN109389299B (zh) | 工作流流程部署方法、装置、计算机设备和存储介质 | |
CN111209120A (zh) | 微服务的数据同步方法、装置及计算机可读存储介质 | |
CN111414350A (zh) | 一种服务生成方法及装置 | |
US20200042330A1 (en) | Systems, methods, and apparatuses for dynamic creation of an external code segment within a cloud based computing environment | |
CN112579118A (zh) | 微服务的配置信息更新方法、装置、系统、介质和设备 | |
CN110602163A (zh) | 文件上传方法及装置 | |
CN113535587A (zh) | 目标应用检测方法、装置及计算机设备 | |
US20140297736A1 (en) | Data interchange system | |
CN112491943A (zh) | 数据请求方法、装置、存储介质和电子设备 | |
US9537941B2 (en) | Method and system for verifying quality of server | |
US10114864B1 (en) | List element query support and processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |