CN111506555A - Druid集群的迁移方法、装置及计算机设备 - Google Patents
Druid集群的迁移方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN111506555A CN111506555A CN202010173251.5A CN202010173251A CN111506555A CN 111506555 A CN111506555 A CN 111506555A CN 202010173251 A CN202010173251 A CN 202010173251A CN 111506555 A CN111506555 A CN 111506555A
- Authority
- CN
- China
- Prior art keywords
- cluster
- druid
- migrated
- target
- zookeeper
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种Druid集群的迁移方法、装置及计算机设备,涉及计算机技术领域,可解决在进行Druid集群的迁移时,状态数据无法识别,且迁移周期长、工作效率低的问题。其中方法包括:获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群;通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群;在完成对所述状态数据的迁移后,将所述待迁移Druid集群中的元数据迁移至所述目标Druid集群;在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移。本申请适用于对Druid集群的迁移。
Description
技术领域
本申请涉及计算技术领域,尤其涉及到一种Druid集群的迁移方法、装置及计算机设备。
背景技术
Hadoop集群内部搭建一套包含多台机器的Druid集群,由于数据量的增加、任务的增多以及对集群性能要求的增加,因此之前搭建的Duird集群的机器配置完全不能满足现在的要求,从而需要更换配置更高的机器搭建新的Druid集群,以满足集群性能及业务需求。因此需要将Druid集群的服务和数据迁移到新搭建的Druid集群上。
目前在进行Druid集群的迁移时,主要通过将Zookeeper里面Druid的状态数据直接用复制的方式复制到新Druid集群的机器上,远程将Druid集群的机器上本地缓存的数据迁移到新Druid集群的相同目录下或者直接启动Historical服务让其自行从HDFS上将数据下载到本地缓存。然而这种数据迁移方式会容易使迁移过去的Druid的状态数据无法识别,并且会使数据迁移的周期较长,影响工作效率。
发明内容
有鉴于此,本申请提供了一种Druid集群的迁移方法、装置及计算机设备,可以解决在进行Druid集群的迁移时,状态数据无法识别,且迁移周期长、工作效率低的问题。
根据本申请的一个方面,提供了一种Druid集群的迁移方法,该方法包括:
获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群;
通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群;
在完成对所述状态数据的迁移后,将所述待迁移Druid集群中的元数据迁移至所述目标Druid集群;
在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移。
相应的,所述通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群,具体包括:
获取所述待迁移Druid集群的Zookeeper状态;
基于所述Zookeeper状态将所述目标Druid集群的Zookeeper集群扩容至所述待迁移Druid集群的Zookeeper集群中,以便将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群。
具体地,所述基于所述Zookeeper状态将所述目标Druid集群的Zookeeper集群扩容至所述待迁移Druid集群的Zookeeper集群中,以便将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群,具体包括:
从所述目标Druid集群中提取预设数量个目标Zookeeper集群;
启动所述目标Zookeeper集群的ZooKeeper服务;
关闭所述Zookeeper状态为follower的所述原Zookeeper集群,并且将对应的配置信息和端口修改为与所述目标Zookeeper集群中的相同;
关闭所述Zookeeper状态为leader的所述原Zookeeper集群,并且将对应的配置信息和端口修改为与所述目标Zookeeper集群中的相同;
重新启动所述待迁移Druid集群中的Zookeeper服务,以便基于选举原则重新选取Zookeeper状态中的leader,进一步将所述待迁移Druid集群中的Zookeeper数据加载到所述目标Druid集群的Zookeeper上。
相应的,在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移,具体包括:
修改所述目标Druid集群的机器配置$DRUID_HOME/conf/druid/_common/common.runtime.properties里面的druid.zk.service.host;
依次关闭所述待迁移Druid集群的Druid服务,将所述待迁移Druid集群的机器配置$DRUID_HOME/conf/druid/_common/.runtime.properties中的druid.zk.service.host修改为与所述目标Druid集群中的相同;
依次启动所述待迁移Druid集群上的Druid服务,并且启动所述目标Druid集群中的Historical服务,以便将所述待迁移Druid集群的本地缓存数据迁移到所述目标Druid集群上;
关闭所述待迁移Druid集群的broker、coordinator、overlord、middleManager服务;
开启所述目标Druid集群的coordinator、overlord、middleManager、broker服务。
具体地,所述关闭所述待迁移Druid集群的broker、coordinator、overlord、middleManager服务,具体包括:
在所述待迁移Druid集群中第一台机器的$DRUID_HOME/bin目录下使用命令shbroker.sh stop关闭broker;
在所述待迁移Druid集群中第二台机器的$DRUID_HOME/bin目录下使用命令shcoordinator.sh stop关闭coordinator;
在所述待迁移Druid集群中第三台机器的$DRUID_HOME/bin目录下使用命令shoverlord.sh stop关闭overlord;
在所述待迁移Druid集群中第四台机器的$DRUID_HOME/bin目录下使用命令shmiddleManager.sh stop关闭middleManager。
相应的,所述开启所述目标Druid集群的coordinator、overlord、middleManager、broker服务,具体包括:
在所述目标Druid集群中第一台机器的$DRUID_HOME/bin目录下使用命令shstart_server.sh broker启动broker;
在所述目标Druid集群中第二台机器的$DRUID_HOME/bin目录下使用命令shstart_server.sh coordinator启动coordinator;
在所述目标Druid集群中第三台机器的$DRUID_HOME/bin目录下使用命令shstart_server.sh overlord启动overlord;
在所述目标Druid集群中第四台机器的$DRUID_HOME/bin目录下使用命令shstart_server.sh middleManager启动middleManager。
相应地,在通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移之后,具体还包括:
依次移除所述待迁移Druid集群的Zookeeper以及Historical。
根据本申请的另一个方面,提供了一种Druid集群的迁移装置,该装置包括:
获取模块,用于获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群;
迁移模块,用于通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群;
迁移模块,还用于在完成对所述状态数据的迁移后,将所述待迁移Druid集群中的元数据迁移至所述目标Druid集群;
切换模块,用于在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移。
相应地,迁移模块,具体用于获取所述待迁移Druid集群的Zookeeper状态;
基于所述Zookeeper状态将所述目标Druid集群的Zookeeper集群扩容至所述待迁移Druid集群的Zookeeper集群中,以便将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群。
具体地,迁移模块,具体用于从所述目标Druid集群中提取预设数量个目标Zookeeper集群;
启动所述目标Zookeeper集群的ZooKeeper服务;
关闭所述Zookeeper状态为follower的所述原Zookeeper集群,并且将对应的配置信息和端口修改为与所述目标Zookeeper集群中的相同;
关闭所述Zookeeper状态为leader的所述原Zookeeper集群,并且将对应的配置信息和端口修改为与所述目标Zookeeper集群中的相同;
重新启动所述待迁移Druid集群中的Zookeeper服务,以便基于选举原则重新选取Zookeeper状态中的leader,进一步将所述待迁移Druid集群中的Zookeeper数据加载到所述目标Druid集群的Zookeeper上。
相应的,切换模块,具体用于修改所述目标Druid集群的机器配置$DRUID_HOME/conf/druid/_common/common.runtime.properties里面的druid.zk.service.host;
依次关闭所述待迁移Druid集群的Druid服务,将所述待迁移Druid集群的机器配置$DRUID_HOME/conf/druid/_common/.runtime.properties中的druid.zk.service.host修改为与所述目标Druid集群中的相同;
依次启动所述待迁移Druid集群上的Druid服务,并且启动所述目标Druid集群中的Historical服务,以便将所述待迁移Druid集群的本地缓存数据迁移到所述目标Druid集群上;
关闭所述待迁移Druid集群的broker、coordinator、overlord、middleManager服务;
开启所述目标Druid集群的coordinator、overlord、middleManager、broker服务。
具体地,切换模块,具体用于在所述待迁移Druid集群中第一台机器的$DRUID_HOME/bin目录下使用命令sh broker.sh stop关闭broker;
在所述待迁移Druid集群中第二台机器的$DRUID_HOME/bin目录下使用命令shcoordinator.sh stop关闭coordinator;
在所述待迁移Druid集群中第三台机器的$DRUID_HOME/bin目录下使用命令shoverlord.sh stop关闭overlord;
在所述待迁移Druid集群中第四台机器的$DRUID_HOME/bin目录下使用命令shmiddleManager.sh stop关闭middleManager。
相应的,切换模块,具体用于在所述目标Druid集群中第一台机器的$DRUID_HOME/bin目录下使用命令sh start_server.sh broker启动broker;
在所述目标Druid集群中第二台机器的$DRUID_HOME/bin目录下使用命令shstart_server.sh coordinator启动coordinator;
在所述目标Druid集群中第三台机器的$DRUID_HOME/bin目录下使用命令shstart_server.sh overlord启动overlord;
在所述目标Druid集群中第四台机器的$DRUID_HOME/bin目录下使用命令shstart_server.sh middleManager启动middleManager。
相应的,本装置还包括移除模块,移除模块用于依次移除所述待迁移Druid集群的Zookeeper以及Historical。
根据本申请的又一个方面,提供了一种非易失性可读存储介质,其上存储有计算机程序,程序被处理器执行时实现上述Druid集群的迁移方法。
根据本申请的再一个方面,提供了一种计算机设备,包括非易失性可读存储介质、处理器及存储在非易失性可读存储介质上并可在处理器上运行的计算机程序,处理器执行程序时实现上述Druid集群的迁移方法。
借由上述技术方案,本申请提供的一种Druid集群的迁移方法、装置及计算机设备,与目前Druid集群的迁移方式相比,本申请可在进行集群迁移时,通过扩容Zookeeper集群将待迁移Druid集群中的状态数据迁移至目标Druid集群,可保证Zookeeper数据零风险的迁移,进一步提高迁移速度,保证服务运行的稳定性。通过增加Historical服务,以便基于Druid集群的Historical的高可用性,实现Druid服务不间断且用户无感知的将本地数据成功的迁移到目标Druid集群上,实现数据的无缝对接迁移,保证数据和集群服务的兼容性,进一步提高工作效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本地申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种Druid集群的迁移方法的流程示意图;
图2示出了本申请实施例提供的另一种Druid集群的迁移方法的流程示意图;
图3示出了本申请实施例提供的一种Druid集群的迁移的结构示意图;
图4示出了本申请实施例提供的一种Druid集群的迁移装置的结构示意图;
图5示出了本申请实施例提供的另一种Druid集群的迁移装置的结构示意图。
具体实施方式
下文将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合。
针对目前在进行Druid集群的迁移时,迁移周期长、工作效率低的问题。本申请实施例提供了一种Druid集群的迁移方法,如图1所示,该方法包括:
101、获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群。
其中,配置要求是指目标Druid集群和待迁移Druid集群中的集群信息对应一致,只是目标Druid集群中的配置更高。
102、通过扩容Zookeeper集群将待迁移Druid集群中的状态数据迁移至目标Druid集群。
对于本实施例,在具体的应用场景中,要想将待迁移Druid集群迁移到目标Druid集群中,首先要进行Zookeeper集群的迁移,将Zookeepr数据从待迁移Druid集群迁移到目标Druid集群,使其保持原有的状态。
103、在完成对状态数据的迁移后,将待迁移Druid集群中的元数据迁移至目标Druid集群。
对于本实施例,在具体的应用场景中,由于待迁移Druid集群和目标Druid集群的元数据存储在同一个Mysql相同库和表中,且两个集群使用相同的user和password。故目标Druid集群的元数据可无缝对接待迁移Druid集群的元数据。
104、在完成对元数据的迁移后,通过增加Historical服务将待迁移Druid集群的Druid集群服务切换为目标Druid集群的Druid集群服务,以便实现对待迁移Druid集群的迁移。
对于本实施例,在具体的应用场景中,可通过增加Historical服务,使Druid服务将本地数据迁移到目标Druid集群的机器上。
通过本实施例中Druid集群的迁移方法,可在进行集群迁移时,通过扩容Zookeeper集群将待迁移Druid集群中的状态数据迁移至目标Druid集群,可保证Zookeeper数据零风险的迁移,进一步提高迁移速度,保证服务运行的稳定性。通过增加Historical服务,以便基于Druid集群的Historical的高可用性,实现Druid服务不间断且用户无感知的将本地数据成功的迁移到目标Druid集群上,实现数据的无缝对接迁移,保证数据和集群服务的兼容性,进一步提高工作效率。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例中的具体实施过程,提供了另一种Druid集群的迁移方法,如图2所示,该方法包括:
201、获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群。
例如,待迁移Druid集群对应Druid集群A,目标Druid集群对应Druid集群B,在本申请中,如图3所示,旨在将Druid集群A中的数据完全转换到Druid集群B中,利用Druid集群B替换Druid集群A,其中,Druid集群A和Druid集群B的集群信息对应一致,只是Druid集群B中的配置较高。
202、获取待迁移Druid集群的Zookeeper状态。
在具体的应用场景中,可用命令zkServer.sh status查看Druid集群A的Zookeeper的状态,此时会选择myid最大的那个作为leader,故可知A1状态为follower,A2状态为follower,A3状态为leader。
203、基于Zookeeper状态将目标Druid集群的Zookeeper集群扩容至待迁移Druid集群的Zookeeper集群中,以便将待迁移Druid集群中的状态数据迁移至目标Druid集群。
对于本实施,在具体的应用场景中,实施例步骤203具体可以包括:从目标Druid集群中提取预设数量个目标Zookeeper集群;启动目标Zookeeper集群的ZooKeeper服务;关闭Zookeeper状态为follower的原Zookeeper集群,并且将对应的配置信息和端口修改为与目标Zookeeper集群中的相同;关闭Zookeeper状态为leader的原Zookeeper集群,并且将对应的配置信息和端口修改为与目标Zookeeper集群中的相同;重新启动待迁移Druid集群中的Zookeeper服务,以便基于选举原则重新选取Zookeeper状态中的leader,进一步将待迁移Druid集群中的Zookeeper数据加载到目标Druid集群的Zookeeper上。
在具体的应用场景中,为了便于leader的选取,故在进行Zookeeper集群扩容时,需要保证扩容后的数量为奇数。例如,在本方案中,可将Zookeeper集群从3台扩容为7台机器,新添加的Druid集群B的机器IP为B1、B2、B3、B4。以将Zookeeper集群从3台扩容为7台机器为例,具体扩容处理步骤为:将Druid集群B上的Zookeeper的配置改成Druid集群B和Druid集群A的总共的7个Zookeeper的IP且端口相同;启动IP为B1、B2、B3、B4这4台ZooKeeper服务,此时4台机器的Zookeeper状态均为follower;跳过Druid集群A的Zookeeper状态为leader的A3机器,在A1和A2上使用命令zkServer.sh stop将Zookepper关闭,将配置文件的IP及端口修改成和B1上一样,在A1、A2上用zkServer.sh start命令启动Zookeeper服务;在本步骤中,需要先停掉两个follwer,因为leader数据是最新,这样可以确保Zookeeper里面为最新的数据;最后关闭leader所在A3的Zookeeper服务,并将配置文件IP及端口改和B1一样,在A3上用zkServer.sh start命令启动Zookeeper服务,此时Zookeeper需要重新选举,由Zookeeper的选举原则可知道B4为Zookeeper的leader。在本步骤中,可实现对状态数据的转移,即将A机器中的Zookeeper数据加载到B机器的Zookeeper机器上,当A机器上的Zookeeper上机器数据完全同步到B机器上的Zookeeper数据时,可将A机器的Zookeeper服务停掉,完整将A机器卸载掉。
204、在完成对状态数据的迁移后,将待迁移Druid集群中的元数据迁移至目标Druid集群。
对于本实施例,在具体的应用场景中,由于待迁移Druid集群和目标Druid集群的元数据存储在同一个Mysql相同库和表中,因此B1、B2、B3、B4、B5、B6机器开墙到Mysql服务器,且两个集群使用相同的user和password。故目标Druid集群的元数据可无缝对接待迁移Druid集群的元数据。
205、在完成对元数据的迁移后,通过增加Historical服务将待迁移Druid集群的Druid集群服务切换为目标Druid集群的Druid集群服务,以便实现对待迁移Druid集群的迁移。
对于本实施例,在具体的应用场景中,实施例步骤205具体可以包括:修改目标Druid集群的机器配置$DRUID_HOME/conf/druid/_common/common.runtime.properties里面的druid.zk.service.host;依次关闭待迁移Druid集群的Druid服务,将待迁移Druid集群的机器配置$DRUID_HOME/conf/druid/_common/.runtime.properties中的druid.zk.service.host修改为与目标Druid集群中的相同;依次启动待迁移Druid集群上的Druid服务,并且启动目标Druid集群中的Historical服务,以便将待迁移Druid集群的本地缓存数据迁移到目标Druid集群上;关闭待迁移Druid集群的broker、coordinator、overlord、middleManager服务;开启目标Druid集群的coordinator、overlord、middleManager、broker服务。
例如,可修改Druid集群B的6台机器的配置$DRUID_HOME/conf/druid/_common/common.runtime.properties中的druid.zk.service.host=A1,A2,A3,B1,B2,B3,B4;依次关闭Druid集群A的Druid服务,将Druid集群A的6台机器的$DRUID_HOME/conf/druid/_common/.runtime.properties配置文件里的druid.zk.service.host=A1,A2,A3,B1,B2,B3,B4;然后依次启动Druid集群A上的Druid服务,并且启动B5,B6机器上的Historical服务;启动B5 B6后,此时会有4个Historical服务,后面运行任务,会有部分数据缓存到B5,B6的机器上,通过关掉A5的服务,Druid集群会将A5上的数据重新分配,分配到剩余的机器上,运行一段时间,等到A5上的数据均分到剩余3台机器上后,将A6机器上的Historical服务关掉,此时A6机上的数据会自动均分到剩余两台即B5,B6这两台上;依次关闭Druid集群A的broker、coordinator、overlord、middleManager服务;依次开启Druid集群B的coordinator、overlord、middleManager、broker服务,此时用户需要进行修改业务代码的相应IP。
相应的,关闭待迁移Druid集群的broker、coordinator、overlord、middleManager服务,具体可以包括:在待迁移Druid集群中第一台机器的$DRUID_HOME/bin目录下使用命令sh broker.sh stop关闭broker;在待迁移Druid集群中第二台机器的$DRUID_HOME/bin目录下使用命令sh coordinator.sh stop关闭coordinator;在待迁移Druid集群中第三台机器的$DRUID_HOME/bin目录下使用命令sh overlord.sh stop关闭overlord;在待迁移Druid集群中第四台机器的$DRUID_HOME/bin目录下使用命令sh middleManager.sh stop关闭middleManager。
例如,可在A1上的$DRUID_HOME/bin目录下使用命令sh broker.shstop关闭broker;在A2上的$DRUID_HOME/bin目录下使用命令sh coordinator.sh stop关闭coordinator;在A3上的$DRUID_HOME/bin目录下使用命令sh overlord.sh stop关闭overlord;在A4上的$DRUID_HOME/bin目录下使用命令sh middleManager.sh stop关闭middleManager。
相应的,开启目标Druid集群的coordinator、overlord、middleManager、broker服务,具体可以包括:在目标Druid集群中第一台机器的$DRUID_HOME/bin目录下使用命令shstart_server.sh broker启动broker;在目标Druid集群中第二台机器的$DRUID_HOME/bin目录下使用命令sh start_server.sh coordinator启动coordinator;在目标Druid集群中第三台机器的$DRUID_HOME/bin目录下使用命令sh start_server.sh overlord启动overlord;在目标Druid集群中第四台机器的$DRUID_HOME/bin目录下使用命令sh start_server.sh middleManager启动middleManager。
例如,可在B1上的$DRUID_HOME/bin目录下使用命令sh start_server.sh broker启动broker;在B2上的$DRUID_HOME/bin目录下使用命令sh start_server.shcoordinator启动coordinator;在B3上的$DRUID_HOME/bin目录下使用命令sh start_server.sh overlord启动overlord;在B4上的$DRUID_HOME/bin目录下使用命令sh start_server.sh middleManager启动middleManager。
206、依次移除待迁移Druid集群的Zookeeper以及Historical。
对于本实施例,在具体的应用场景中,移除待迁移Druid集群的Zookeeper的具体步骤可为:依次停掉待迁移Druid集群(Druid集群A)的A1,A2,A3的zookeeper服务;跳过Zookeeper状态为leader的那台机器,先将B1机器的zookeeper服务停掉,将Zookpeer的配置文件里的Zookeeper集群的IP改成B1、B2、B3、B4然后重启Zookeeper的服务,并依次在B2、B3执行该操作后关闭机B4机器上的Zookeeper服务,此时Zookeeper的leader为myid第二大的B3机器上的Zookeeper。
相应的,移除待迁移Druid集群的Historical的具体步骤可为:在A5、A6机器上的/appcom/druid/bin目录下,使用sh historical.sh stop命令关闭待迁移Druid集群(Druid集群A)的Historical服务。此时完全将待迁移Druid集群的所有数据迁移到目标Druid集群中且不用再依赖待迁移Druid集群的任何服务。
通过上述Druid集群的迁移方法,可在进行集群迁移时,通过扩容Zookeeper集群将待迁移Druid集群中的状态数据迁移至目标Druid集群,可保证Zookeeper数据零风险的迁移,进一步提高迁移速度,保证服务运行的稳定性和数据的安全性。通过增加Historical服务,以便基于Druid集群的Historical的高可用性,实现Druid服务不间断且用户无感知的将本地数据成功的迁移到目标Druid集群上,实现数据的无缝对接迁移,保证数据和集群服务的兼容性,避免出现迁移后集群运行一段时间跑任务或Druid相关服务出错的情况,很好的规避了需要Druid集群服务再迁回到原来的集群的问题,进一步提高工作效率。
进一步的,作为图1和图2所示方法的具体体现,本申请实施例提供了一种Druid集群的迁移装置,如图4所示,该装置包括:获取模块31、迁移模块32、切换模块33。
获取模块31,用于获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群;
迁移模块32,用于通过扩容Zookeeper集群将待迁移Druid集群中的状态数据迁移至目标Druid集群;
迁移模块32,还用于在完成对状态数据的迁移后,将待迁移Druid集群中的元数据迁移至目标Druid集群;
切换模块33,用于在完成对元数据的迁移后,通过增加Historical服务将待迁移Druid集群的Druid集群服务切换为目标Druid集群的Druid集群服务,以便实现对待迁移Druid集群的迁移。
在具体的应用场景中,为了实现将待迁移Druid集群中的状态数据迁移至目标Druid集群,迁移模块32,具体用于获取待迁移Druid集群的Zookeeper状态;基于Zookeeper状态将目标Druid集群的Zookeeper集群扩容至待迁移Druid集群的Zookeeper集群中,以便将待迁移Druid集群中的状态数据迁移至目标Druid集群。
相应的,为了基于Zookeeper状态将目标Druid集群的Zookeeper集群扩容至待迁移Druid集群的Zookeeper集群中,迁移模块32,具体用于从目标Druid集群中提取预设数量个目标Zookeeper集群;启动目标Zookeeper集群的ZooKeeper服务;关闭Zookeeper状态为follower的原Zookeeper集群,并且将对应的配置信息和端口修改为与目标Zookeeper集群中的相同;关闭Zookeeper状态为leader的原Zookeeper集群,并且将对应的配置信息和端口修改为与目标Zookeeper集群中的相同;重新启动待迁移Druid集群中的Zookeeper服务,以便基于选举原则重新选取Zookeeper状态中的leader,进一步将待迁移Druid集群中的Zookeeper数据加载到目标Druid集群的Zookeeper上。
在具体的应用场景中,为了通过增加Historical服务将待迁移Druid集群的Druid集群服务切换为目标Druid集群的Druid集群服务,以便实现对待迁移Druid集群的迁移,切换模块33,具体用于修改目标Druid集群的机器配置$DRUID_HOME/conf/druid/_common/common.runtime.properties里面的druid.zk.service.host;依次关闭待迁移Druid集群的Druid服务,将待迁移Druid集群的机器配置$DRUID_HOME/conf/druid/_common/.runtime.properties中的druid.zk.service.host修改为与目标Druid集群中的相同;依次启动待迁移Druid集群上的Druid服务,并且启动目标Druid集群中的Historical服务,以便将待迁移Druid集群的本地缓存数据迁移到目标Druid集群上;关闭待迁移Druid集群的broker、coordinator、overlord、middleManager服务;开启目标Druid集群的coordinator、overlord、middleManager、broker服务。
相应的,为了关闭待迁移Druid集群的broker、coordinator、overlord、middleManager服务,切换模块33,具体用于在待迁移Druid集群中第一台机器的$DRUID_HOME/bin目录下使用命令sh broker.sh stop关闭broker;在待迁移Druid集群中第二台机器的$DRUID_HOME/bin目录下使用命令shcoordinator.sh stop关闭coordinator;在待迁移Druid集群中第三台机器的$DRUID_HOME/bin目录下使用命令sh overlord.sh stop关闭overlord;在待迁移Druid集群中第四台机器的$DRUID_HOME/bin目录下使用命令shmiddleManager.sh stop关闭middleManager。
相应的,为了开启目标Druid集群的coordinator、overlord、middleManager、broker服务,切换模块33,具体用于在目标Druid集群中第一台机器的$DRUID_HOME/bin目录下使用命令sh start_server.sh broker启动broker;在目标Druid集群中第二台机器的$DRUID_HOME/bin目录下使用命令sh start_server.sh coordinator启动coordinator;在目标Druid集群中第三台机器的$DRUID_HOME/bin目录下使用命令sh start_server.shoverlord启动overlord;在目标Druid集群中第四台机器的$DRUID_HOME/bin目录下使用命令sh start_server.sh middleManager启动middleManager。
在具体的应用场景中,为了当待迁移Druid集群完成迁移时,停掉待迁移Druid集群的服务,如图5所示,本装置还包括:移除模块34。
移除模块34,用于依次移除待迁移Druid集群的Zookeeper以及Historical。
需要说明的是,本实施例提供的一种Druid集群的迁移装置所涉及各功能单元的其它相应描述,可以参考图1至图2中的对应描述,在此不再赘述。
基于上述如图1和图2所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1和图2所示的Druid集群的迁移方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景的方法。
基于上述如图1、图2所示的方法,以及图4、图5所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该实体设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1和图2所示的Druid集群的迁移方法。
可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的计算机设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
非易失性可读存储介质中还可以包括操作***、网络通信模块。操作***是用于语音身份识别的实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现非易失性可读存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可在进行集群迁移时,通过扩容Zookeeper集群将待迁移Druid集群中的状态数据迁移至目标Druid集群,可保证Zookeeper数据零风险的迁移,进一步提高迁移速度,保证服务运行的稳定性和数据的安全性。通过增加Historical服务,以便基于Druid集群的Historical的高可用性,实现Druid服务不间断且用户无感知的将本地数据成功的迁移到目标Druid集群上,实现数据的无缝对接迁移,保证数据和集群服务的兼容性,避免出现迁移后集群运行一段时间跑任务或Druid相关服务出错的情况,很好的规避了需要Druid集群服务再迁回到原来的集群的问题,进一步提高工作效率。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (10)
1.一种Druid集群的迁移方法,其特征在于,包括:
获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群;
通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群;
在完成对所述状态数据的迁移后,将所述待迁移Druid集群中的元数据迁移至所述目标Druid集群;
在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移。
2.根据权利要求1所述的方法,其特征在于,所述通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群,具体包括:
获取所述待迁移Druid集群的Zookeeper状态;
基于所述Zookeeper状态将所述目标Druid集群的Zookeeper集群扩容至所述待迁移Druid集群的Zookeeper集群中,以便将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群。
3.根据权利要求2所述的方法,其特征在于,所述基于所述Zookeeper状态将所述目标Druid集群的Zookeeper集群扩容至所述待迁移Druid集群的Zookeeper集群中,以便将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群,具体包括:
从所述目标Druid集群中提取预设数量个目标Zookeeper集群;
启动所述目标Zookeeper集群的ZooKeeper服务;
关闭所述Zookeeper状态为follower的所述原Zookeeper集群,并且将对应的配置信息和端口修改为与所述目标Zookeeper集群中的相同;
关闭所述Zookeeper状态为leader的所述原Zookeeper集群,并且将对应的配置信息和端口修改为与所述目标Zookeeper集群中的相同;
重新启动所述待迁移Druid集群中的Zookeeper服务,以便基于选举原则重新选取Zookeeper状态中的leader,进一步将所述待迁移Druid集群中的Zookeeper数据加载到所述目标Druid集群的Zookeeper上。
4.根据权利要求3所述的方法,其特征在于,在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移,具体包括:
修改所述目标Druid集群的机器配置$DRUID_HOME/conf/druid/_common/common.runtime.properties里面的druid.zk.service.host;
依次关闭所述待迁移Druid集群的Druid服务,将所述待迁移Druid集群的机器配置$DRUID_HOME/conf/druid/_common/.runtime.properties中的druid.zk.service.host修改为与所述目标Druid集群中的相同;
依次启动所述待迁移Druid集群上的Druid服务,并且启动所述目标Druid集群中的Historical服务,以便将所述待迁移Druid集群的本地缓存数据迁移到所述目标Druid集群上;
关闭所述待迁移Druid集群的broker、coordinator、overlord、middleManager服务;
开启所述目标Druid集群的coordinator、overlord、middleManager、broker服务。
5.根据权利要求4所述的方法,其特征在于,所述关闭所述待迁移Druid集群的broker、coordinator、overlord、middleManager服务,具体包括:
在所述待迁移Druid集群中第一台机器的$DRUID_HOME/bin目录下使用命令shbroker.sh stop关闭broker;
在所述待迁移Druid集群中第二台机器的$DRUID_HOME/bin目录下使用命令shcoordinator.sh stop关闭coordinator;
在所述待迁移Druid集群中第三台机器的$DRUID_HOME/bin目录下使用命令shoverlord.sh stop关闭overlord;
在所述待迁移Druid集群中第四台机器的$DRUID_HOME/bin目录下使用命令shmiddleManager.sh stop关闭middleManager。
6.根据权利要求5所述的方法,其特征在于,所述开启所述目标Druid集群的coordinator、overlord、middleManager、broker服务,具体包括:
在所述目标Druid集群中第一台机器的$DRUID_HOME/bin目录下使用命令sh start_server.sh broker启动broker;
在所述目标Druid集群中第二台机器的$DRUID_HOME/bin目录下使用命令sh start_server.sh coordinator启动coordinator;
在所述目标Druid集群中第三台机器的$DRUID_HOME/bin目录下使用命令sh start_server.sh overlord启动overlord;
在所述目标Druid集群中第四台机器的$DRUID_HOME/bin目录下使用命令sh start_server.sh middleManager启动middleManager。
7.根据权利要求1所述的方法,其特征在于,在通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移之后,具体还包括:
依次移除所述待迁移Druid集群的Zookeeper以及Historical。
8.一种Druid集群的迁移装置,其特征在于,包括:
获取模块,用于获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群;
迁移模块,用于通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群;
迁移模块,还用于在完成对所述状态数据的迁移后,将所述待迁移Druid集群中的元数据迁移至所述目标Druid集群;
切换模块,用于在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移。
9.一种非易失性可读存储介质,其上存储有计算机程序,其特征在于,程序被处理器执行时实现权利要求1至7中任一项的Druid集群的迁移方法。
10.一种计算机设备,包括非易失性可读存储介质、处理器及存储在非易失性可读存储介质上并可在处理器上运行的计算机程序,其特征在于,处理器执行程序时实现权利要求1至7中任一项的Druid集群的迁移方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010173251.5A CN111506555B (zh) | 2020-03-13 | 2020-03-13 | Druid集群的迁移方法、装置及计算机设备 |
PCT/CN2020/119058 WO2021179584A1 (zh) | 2020-03-13 | 2020-09-29 | Druid集群的迁移方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010173251.5A CN111506555B (zh) | 2020-03-13 | 2020-03-13 | Druid集群的迁移方法、装置及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506555A true CN111506555A (zh) | 2020-08-07 |
CN111506555B CN111506555B (zh) | 2023-05-23 |
Family
ID=71863859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010173251.5A Active CN111506555B (zh) | 2020-03-13 | 2020-03-13 | Druid集群的迁移方法、装置及计算机设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111506555B (zh) |
WO (1) | WO2021179584A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800029A (zh) * | 2021-01-29 | 2021-05-14 | 紫光云技术有限公司 | 一种ceph集群整体迁移的方法 |
WO2021179584A1 (zh) * | 2020-03-13 | 2021-09-16 | 平安科技(深圳)有限公司 | Druid集群的迁移方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070174661A1 (en) * | 2005-11-15 | 2007-07-26 | Bea Systems, Inc. | System and method for providing singleton services in a cluster |
CN105426439A (zh) * | 2015-11-05 | 2016-03-23 | 腾讯科技(深圳)有限公司 | 一种元数据的处理方法和装置 |
US20160132576A1 (en) * | 2014-11-07 | 2016-05-12 | Turn Inc. | High availability and disaster recovery in large-scale data warehouse |
CN106959950A (zh) * | 2016-01-08 | 2017-07-18 | 北京京东尚科信息技术有限公司 | 应用集群之间迁移数据的方法和装置 |
CN109062666A (zh) * | 2018-07-27 | 2018-12-21 | 浪潮电子信息产业股份有限公司 | 一种虚拟机集群管理方法及相关装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103259863B (zh) * | 2013-05-17 | 2016-01-06 | 汉柏科技有限公司 | 基于集群的控制zookeeper服务的***及方法 |
US10628235B2 (en) * | 2018-01-11 | 2020-04-21 | Robin Systems, Inc. | Accessing log files of a distributed computing system using a simulated file system |
CN109376010B (zh) * | 2018-09-28 | 2020-11-27 | 上海思询信息科技有限公司 | 一种基于Openstack实现跨集群资源迁移的方法 |
CN111506555B (zh) * | 2020-03-13 | 2023-05-23 | 平安科技(深圳)有限公司 | Druid集群的迁移方法、装置及计算机设备 |
-
2020
- 2020-03-13 CN CN202010173251.5A patent/CN111506555B/zh active Active
- 2020-09-29 WO PCT/CN2020/119058 patent/WO2021179584A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070174661A1 (en) * | 2005-11-15 | 2007-07-26 | Bea Systems, Inc. | System and method for providing singleton services in a cluster |
US20160132576A1 (en) * | 2014-11-07 | 2016-05-12 | Turn Inc. | High availability and disaster recovery in large-scale data warehouse |
CN105426439A (zh) * | 2015-11-05 | 2016-03-23 | 腾讯科技(深圳)有限公司 | 一种元数据的处理方法和装置 |
CN106959950A (zh) * | 2016-01-08 | 2017-07-18 | 北京京东尚科信息技术有限公司 | 应用集群之间迁移数据的方法和装置 |
CN109062666A (zh) * | 2018-07-27 | 2018-12-21 | 浪潮电子信息产业股份有限公司 | 一种虚拟机集群管理方法及相关装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021179584A1 (zh) * | 2020-03-13 | 2021-09-16 | 平安科技(深圳)有限公司 | Druid集群的迁移方法、装置、计算机设备及存储介质 |
CN112800029A (zh) * | 2021-01-29 | 2021-05-14 | 紫光云技术有限公司 | 一种ceph集群整体迁移的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2021179584A1 (zh) | 2021-09-16 |
CN111506555B (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104410672B (zh) | 网络功能虚拟化应用升级的方法、转发业务的方法及装置 | |
US9960963B2 (en) | Dynamic client fail-over during a rolling patch installation based on temporal server conditions | |
US9870288B2 (en) | Container-based processing method, apparatus, and system | |
US10116735B2 (en) | Service migration across cluster boundaries | |
US9503310B1 (en) | Methods and systems of dynamic management of resources in a virtualized environment | |
US20200301699A1 (en) | Embedded application upgrade | |
JP6680901B2 (ja) | 管理方法および装置 | |
CN111506555A (zh) | Druid集群的迁移方法、装置及计算机设备 | |
US10860375B1 (en) | Singleton coordination in an actor-based system | |
CN108319492B (zh) | 复位物理机的方法、装置与*** | |
JP2013508839A5 (zh) | ||
US9766834B2 (en) | Live partition mobility using ordered memory migration | |
CN110753040B (zh) | 一种请求处理的方法及装置 | |
US10432548B2 (en) | Workload deployment in computing networks | |
EP3316518A1 (en) | Method and device for upgrading virtual network element, and computer storage medium | |
CN111381931A (zh) | 容灾方法、装置及*** | |
US11106380B2 (en) | Migration of storage for workloads between desktop and cloud environments | |
US11615006B2 (en) | Virtual network life cycle management | |
CN113051122B (zh) | 性能数据获取方法、装置、电子设备和介质 | |
CN110659105A (zh) | 虚拟化资源处理方法、装置、设备及存储介质 | |
CN109542588B (zh) | 一种用于在云环境下管理虚拟设备的方法和装置 | |
EP4407474A1 (en) | Management of network file copy operations to a new data store | |
US20230020527A1 (en) | Method and apparatus for switching or updating partial or entire workflow on cloud with continuity in dataflow | |
US20220353134A1 (en) | Virtual network function upgrade tool | |
CN117015761A (zh) | 用于在具有数据流连续性的云上切换或更新部分或全部工作流的方法和装置 |
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 |