WO2021179584A1 - Druid集群的迁移方法、装置、计算机设备及存储介质 - Google Patents

Druid集群的迁移方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
WO2021179584A1
WO2021179584A1 PCT/CN2020/119058 CN2020119058W WO2021179584A1 WO 2021179584 A1 WO2021179584 A1 WO 2021179584A1 CN 2020119058 W CN2020119058 W CN 2020119058W WO 2021179584 A1 WO2021179584 A1 WO 2021179584A1
Authority
WO
WIPO (PCT)
Prior art keywords
druid
cluster
migrated
target
zookeeper
Prior art date
Application number
PCT/CN2020/119058
Other languages
English (en)
French (fr)
Inventor
蔡劲
万书武
贺波
蒋英明
Original Assignee
平安科技(深圳)有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 平安科技(深圳)有限公司 filed Critical 平安科技(深圳)有限公司
Publication of WO2021179584A1 publication Critical patent/WO2021179584A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

一种Druid集群的迁移方法、装置、计算机设备及存储介质,涉及计算机技术领域,可解决在进行Druid集群的迁移时,状态数据无法识别,且迁移周期长、工作效率低的问题。其中方法包括:获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群(101);通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群(102);在完成对所述状态数据的迁移后,将所述待迁移Druid集群中的元数据迁移至所述目标Druid集群(103);在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移(104)。该方法适用于对Druid集群的迁移。

Description

Druid集群的迁移方法、装置、计算机设备及存储介质
本申请要求于2020年3月13日提交中国专利局、申请号为CN202010173251.5,发明名称为“Druid集群的迁移方法、装置及计算机设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算技术领域,尤其涉及到一种Druid集群的迁移方法、装置、计算机设备及存储介质。
背景技术
Hadoop集群内部搭建一套包含多台机器的Druid集群,由于数据量的增加、任务的增多以及对集群性能要求的增加,因此之前搭建的Duird集群的机器配置完全不能满足现在的要求,从而需要更换配置更高的机器搭建新的Druid集群,以满足集群性能及业务需求。因此需要将Druid集群的服务和数据迁移到新搭建的Druid集群上。
目前在进行Druid集群的迁移时,主要通过将Zookeeper里面Druid的状态数据直接用复制的方式复制到新Druid集群的机器上,远程将Druid集群的机器上本地缓存的数据迁移到新Druid集群的相同目录下或者直接启动Historical服务让其自行从HDFS上将数据下载到本地缓存。
技术问题
发明人意识到这种数据迁移方式会容易使迁移过去的Druid的状态数据无法识别,并且会使数据迁移的周期较长,影响工作效率。
技术解决方案
一种Druid集群的迁移方法,该方法包括:
获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群;
通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群;
在完成对所述状态数据的迁移后,将所述待迁移Druid集群中的元数据迁移至所述目标Druid集群;
在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移。
一种Druid集群的迁移装置,该装置包括:
获取模块,用于获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群;
迁移模块,用于通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群;
迁移模块,还用于在完成对所述状态数据的迁移后,将所述待迁移Druid集群中的元数据迁移至所述目标Druid集群;
切换模块,用于在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移。
一种非易失性可读存储介质,其上存储有计算机程序,程序被处理器执行时实现如下步骤:
获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群;
通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群;
在完成对所述状态数据的迁移后,将所述待迁移Druid集群中的元数据迁移至所述目标Druid集群;
在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移。
一种计算机设备,包括非易失性可读存储介质、处理器及存储在非易失性可读存储介质上并可在处理器上运行的计算机程序,处理器执行程序时实现如下步骤:
获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群;
通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群;
在完成对所述状态数据的迁移后,将所述待迁移Druid集群中的元数据迁移至所述目标Druid集群;
在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的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.sh  stop关闭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目录下使用命令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。
例如,可在B1上的$DRUID_HOME /bin目录下使用命令sh  start_server.sh  broker启动broker;在B2上的$DRUID_HOME /bin目录下使用命令sh start_server.sh coordinator启动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目录下使用命令sh coordinator.sh stop关闭coordinator;在待迁移Druid集群中第三台机器的$DRUID_HOME /bin目录下使用命令sh overlord.sh stop关闭overlord;在待迁移Druid集群中第四台机器的$DRUID_HOME /bin目录下使用命令sh  middleManager.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.sh  overlord启动overlord;在目标Druid集群中第四台机器的$DRUID_HOME /bin目录下使用命令sh  start_server.sh  middleManager启动middleManager。
在具体的应用场景中,为了当待迁移Druid集群完成迁移时,停掉待迁移Druid集群的服务,如图5所示,本装置还包括:移除模块34。
移除模块34,用于依次移除待迁移Druid集群的Zookeeper以及Historical。
需要说明的是,本实施例提供的一种Druid集群的迁移装置所涉及各功能单元的其它相应描述,可以参考图1至图2中的对应描述,在此不再赘述。
基于上述如图1和图2所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如下步骤:
获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群;
通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群;
在完成对所述状态数据的迁移后,将所述待迁移Druid集群中的元数据迁移至所述目标Druid集群;
在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,也可以存储在一个易失性存储介质,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景的方法。
基于上述如图1、图2所示的方法,以及图4、图5所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该实体设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现如下步骤:
获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群;
通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群;
在完成对所述状态数据的迁移后,将所述待迁移Druid集群中的元数据迁移至所述目标Druid集群;
在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移。
在另一实施例中,本申请所提供的Druid集群的迁移方法,为进一步保证上述所有出现的数据的私密和安全性,上述所有数据还可以存储于一区块链的节点中。例如状态数据及元数据等等,这些数据均可存储在区块链节点中。
需要说明的是,本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(Radio Frequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的计算机设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
非易失性可读存储介质中还可以包括操作系统、网络通信模块。操作系统是用于语音身份识别的实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现非易失性可读存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可在进行集群迁移时,通过扩容Zookeeper集群将待迁移Druid集群中的状态数据迁移至目标Druid集群,可保证Zookeeper数据零风险的迁移,进一步提高迁移速度,保证服务运行的稳定性和数据的安全性。通过增加Historical服务,以便基于Druid集群的Historical的高可用性,实现Druid服务不间断且用户无感知的将本地数据成功的迁移到目标Druid集群上,实现数据的无缝对接迁移,保证数据和集群服务的兼容性,避免出现迁移后集群运行一段时间跑任务或Druid相关服务出错的情况,很好的规避了需要Druid集群服务再迁回到原来的集群的问题,提高工作效率。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

Claims (20)

  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目录下使用命令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。
  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. 一种非易失性可读存储介质,其上存储有计算机程序,其中,程序被处理器执行时实现如下步骤:
    获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群;
    通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群;
    在完成对所述状态数据的迁移后,将所述待迁移Druid集群中的元数据迁移至所述目标Druid集群;
    在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移。
  10. 根据权利要求9所述的非易失性可读存储介质,其中,所述通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群,具体包括:
    获取所述待迁移Druid集群的Zookeeper状态;
    基于所述Zookeeper状态将所述目标Druid集群的Zookeeper集群扩容至所述待迁移Druid集群的Zookeeper集群中,以便将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群。
  11. 根据权利要求10所述的非易失性可读存储介质,其中,所述基于所述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上。
  12. 根据权利要求11所述的非易失性可读存储介质,其中,在完成对所述元数据的迁移后,通过增加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服务。
  13. 根据权利要求12所述的非易失性可读存储介质,其中,所述关闭所述待迁移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。
  14. 根据权利要求13所述的非易失性可读存储介质,其中,所述开启所述目标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。
  15. 根据权利要求9所述的非易失性可读存储介质,其中,在通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移之后,具体还包括:
    依次移除所述待迁移Druid集群的Zookeeper以及Historical。
  16. 一种计算机设备,包括非易失性可读存储介质、处理器及存储在非易失性可读存储介质上并可在处理器上运行的计算机程序,其中,处理器执行程序时实现如下步骤:
    获取需要进行集群迁移的待迁移Druid集群以及符合配置要求的目标Druid集群;
    通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群;
    在完成对所述状态数据的迁移后,将所述待迁移Druid集群中的元数据迁移至所述目标Druid集群;
    在完成对所述元数据的迁移后,通过增加Historical服务将所述待迁移Druid集群的Druid集群服务切换为所述目标Druid集群的Druid集群服务,以便实现对所述待迁移Druid集群的迁移。
  17. 根据权利要求16所述的计算机设备,其中,所述通过扩容Zookeeper集群将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群,具体包括:
    获取所述待迁移Druid集群的Zookeeper状态;
    基于所述Zookeeper状态将所述目标Druid集群的Zookeeper集群扩容至所述待迁移Druid集群的Zookeeper集群中,以便将所述待迁移Druid集群中的状态数据迁移至所述目标Druid集群。
  18. 根据权利要求17所述的计算机设备,其中,所述基于所述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上。
  19. 根据权利要求18所述的计算机设备,其中,在完成对所述元数据的迁移后,通过增加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服务。
  20. 根据权利要求19所述的计算机设备,其中,所述关闭所述待迁移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。
PCT/CN2020/119058 2020-03-13 2020-09-29 Druid集群的迁移方法、装置、计算机设备及存储介质 WO2021179584A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010173251.5 2020-03-13
CN202010173251.5A CN111506555B (zh) 2020-03-13 2020-03-13 Druid集群的迁移方法、装置及计算机设备

Publications (1)

Publication Number Publication Date
WO2021179584A1 true WO2021179584A1 (zh) 2021-09-16

Family

ID=71863859

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/119058 WO2021179584A1 (zh) 2020-03-13 2020-09-29 Druid集群的迁移方法、装置、计算机设备及存储介质

Country Status (2)

Country Link
CN (1) CN111506555B (zh)
WO (1) WO2021179584A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111506555B (zh) * 2020-03-13 2023-05-23 平安科技(深圳)有限公司 Druid集群的迁移方法、装置及计算机设备
CN112800029A (zh) * 2021-01-29 2021-05-14 紫光云技术有限公司 一种ceph集群整体迁移的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103259863A (zh) * 2013-05-17 2013-08-21 汉柏科技有限公司 基于集群的控制zookeeper服务的系统及方法
CN109376010A (zh) * 2018-09-28 2019-02-22 上海思询信息科技有限公司 一种基于Openstack实现跨集群资源迁移的方法
US20190213054A1 (en) * 2018-01-11 2019-07-11 Robin Systems,Inc. Accessing Log Files In A Distributed Computing System
CN111506555A (zh) * 2020-03-13 2020-08-07 平安科技(深圳)有限公司 Druid集群的迁移方法、装置及计算机设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7447940B2 (en) * 2005-11-15 2008-11-04 Bea Systems, Inc. System and method for providing singleton services in a cluster
US10353918B2 (en) * 2014-11-07 2019-07-16 Amobee, Inc. High availability and disaster recovery in large-scale data warehouse
CN105426439B (zh) * 2015-11-05 2022-07-05 腾讯科技(深圳)有限公司 一种元数据的处理方法和装置
CN106959950B (zh) * 2016-01-08 2021-02-26 北京京东尚科信息技术有限公司 应用集群之间迁移数据的方法和装置
CN109062666A (zh) * 2018-07-27 2018-12-21 浪潮电子信息产业股份有限公司 一种虚拟机集群管理方法及相关装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103259863A (zh) * 2013-05-17 2013-08-21 汉柏科技有限公司 基于集群的控制zookeeper服务的系统及方法
US20190213054A1 (en) * 2018-01-11 2019-07-11 Robin Systems,Inc. Accessing Log Files In A Distributed Computing System
CN109376010A (zh) * 2018-09-28 2019-02-22 上海思询信息科技有限公司 一种基于Openstack实现跨集群资源迁移的方法
CN111506555A (zh) * 2020-03-13 2020-08-07 平安科技(深圳)有限公司 Druid集群的迁移方法、装置及计算机设备

Also Published As

Publication number Publication date
CN111506555A (zh) 2020-08-07
CN111506555B (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
US11128707B2 (en) Omnichannel approach to application sharing across different devices
US11533220B2 (en) Network-assisted consensus protocol
US9588807B2 (en) Live logical partition migration with stateful offload connections using context extraction and insertion
RU2653292C2 (ru) Перенос служб через границы кластеров
US10185575B2 (en) Computing device for operating a machine session with persistent read cache and non-persistent write cache and related methods
US10922123B2 (en) Container migration in computing systems
US20160232031A1 (en) Seamless extension of local computing power
WO2013049991A1 (en) Network adapter hardware state migration discovery in a stateful environment
US11036494B2 (en) Embedded application upgrade
US11418566B2 (en) Adding and removing virtual disks remotely to a streaming machine
CN114079615B (zh) 一种多集群环境下的应用同步方法、系统、介质和电子设备
TWI602057B (zh) 遠程區域管理之儲存系統及其電腦執行方法
WO2015157904A1 (zh) 一种文件同步方法、服务器及终端
WO2021179584A1 (zh) Druid集群的迁移方法、装置、计算机设备及存储介质
US11425054B1 (en) User-configured multi-location service deployment and scaling
KR20130051820A (ko) 모바일 환경에서의 소프트웨어 마이그레이션 장치 및 방법
US11765244B1 (en) Latency-based service discovery and routing for multi-location service-oriented applications
WO2020060617A1 (en) Disturbance-free partitioning and migration of data from one storage account to another storage account
US11675577B2 (en) Systems and methods of orchestrating nodes in a blockchain network
US20220247831A1 (en) Wifi router buffered download
CN103490932B (zh) 设备升级的处理方法和装置
CN112965790A (zh) 一种基于pxe协议的虚拟机启动方法及电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20924584

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20924584

Country of ref document: EP

Kind code of ref document: A1