跨集群数据迁移方法和系统的制作方法

文档序号:6626377阅读:224来源:国知局
跨集群数据迁移方法和系统的制作方法
【专利摘要】本发明实施例提供一种跨集群数据迁移方法和系统。通过使源集群的各子节点停止数据操作,以及将源集群的分布式数据库的内存中的数据持久化,能够实现迁移前源集群的分布式数据库中的数据持久化;通过对源集群的分布式数据库中的数据表进行压缩,能够减小数据传送量,将源集群的分布式数据库中的压缩后的数据表迁移至目标集群中,提高了迁移效率;然后通过将迁移前的源集群的分布式数据库中的数据表所占用的存储空间大小及总文件块数,与迁移后的目标集群的数据表占有的存储空间大小和总文件块数进行匹配,能够根据匹配结果验证迁移的完整性。
【专利说明】跨集群数据迁移方法和系统

【技术领域】
[0001]本发明实施例涉及数据库【技术领域】,尤其涉及一种跨集群数据迁移方法和系统。

【背景技术】
[0002]随着互联网应用的发展,用户量的激增,数据存储数量呈指数递增,传统的单库存储技术无法满足海量数据的存取需求,HDFS (Hadoop Distributed File System,分布式文件系统)和分布式数据库应用而生。
[0003]HBase (Hadoop Database,分布式数据库)是一种可扩展的、面向列存储的分布式数据库,利用HDFS作为文件存储系统,以数据表的形式存储数据,能在普通硬件环境基础上支撑十亿量级行、百万量级列的大型数据表,并支持对这种规模的数据进行随机存储和读取操作。由于具有高可靠性、高可扩展性、支持随机存取以及支持MapReduce (映射化简)并行计算,因此得到了广泛应用。其中,Hadoop是一个由“Apache”基金会开发的分布式系统基础架构,用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力实现高速运算和海量数据的存取。
[0004]实际应用过程中,不可避免地涉及数据迁移,尤其是当线上某个HBase集群需要下线,或者机房维护搬迁的时候,都会面临海量数据迁移的紧迫任务,即把老集群的数据表迁移到新集群中继续为接入业务方提供海量数据存取服务。
[0005]现有的数据迁移技术,通常采用Hadoop的数据拷贝组件进行分布式拷贝,从而达到将一个集群中的数据表迁移到新集群的目的。当数据拷贝完成后,启动新集群相关服务进程。
[0006]上述数据迁移技术存在的缺陷在于:无法保证迁移后数据的完整性;迁移耗时严格依赖于迁移数据的规模,导致迁移所用时间很难控制,如果集群间网络带宽有限,同时迁移数据又多,很难保证在短暂的迁移窗口完成迁移工作,也即迁移效率低。


【发明内容】

[0007]本发明实施例提供一种跨集群数据迁移方法和系统,以确保跨集群数据迁移的完整性和高效性。
[0008]第一方面,本发明实施例提供了一种跨集群数据迁移方法,包括:
[0009]源集群的主控节点调用停止命令控制源集群的各子节点停止数据操作;
[0010]源集群的主控节点利用源集群的分布式数据库的清空缓冲区组件,将所述分布式数据库内存中的数据持久化到分布式文件系统HDFS中;
[0011]源集群的主控节点控制对源集群的分布式数据库所包含的数据表,采用设定的压缩算法进行压缩;
[0012]源集群的主控节点统计源集群的分布式数据库中的数据表所占用的HDFS的第一存储空间大小及第一总文件块数;
[0013]源集群的主控节点基于预先获取的目标集群所包含的节点的IP地址与主机名称的映射关系,将源集群中分布式数据库中的数据表迁移至所述目标集群的分布式数据库中;
[0014]如果获取到源集群的映射化简进程的网页管理界面返回的数据迁移完成消息,则目标集群的主控节点统计目标集群的分布式数据库中的数据表占有的对应的HDFS的第二存储空间大小和第二总文件块数,并将所述第二存储空间大小和第二总文件块数与所述第一存储空间大小和所述第一总文件块数匹配;
[0015]如果匹配成功,则目标集群的主控节点采用与所述设定的压缩算法对应的解压算法对迁移至目标集群中的数据表进行解压;
[0016]目标集群的主控节点基于启动策略,启动所述目标集群。
[0017]第二方面,本发明实施例还提供了一种跨集群数据迁移系统,包括源集群和目标集群,所述源集群包括主控节点和至少一个子节点,所述目标集群包括主控节点和至少一个子节点;
[0018]所述源集群的主控节点包括:
[0019]停止模块,用于调用停止命令控制源集群的各子节点停止数据操作;
[0020]持久化模块,用于利用源集群的分布式数据库的清空缓冲区组件,将所述分布式数据库内存中的数据持久化到分布式文件系统HDFS中;
[0021]压缩模块,用于对源集群的分布式数据库所包含的数据表,采用设定的压缩算法进行压缩;
[0022]统计模块,用于统计源集群的分布式数据库中的数据表所占用的HDFS的第一存储空间大小及第一总文件块数;
[0023]迁移模块,用于基于预先获取的目标集群所包含的节点的IP地址与主机名称的映射关系,将源集群中分布式数据库中的数据表迁移至所述目标集群的分布式数据库中;
[0024]所述目标集群的主控节点包括:
[0025]统计模块,用于如果获取到源集群的映射化简进程的网页管理界面返回的数据迁移完成消息,则统计目标集群的分布式数据库中的数据表占有的对应的HDFS的第二存储空间大小和第二总文件块数,并将所述第二存储空间大小和第二总文件块数与所述第一存储空间大小和所述第一总文件块数匹配;
[0026]解压模块,用于如果匹配成功,则采用与所述设定的压缩算法对应的解压算法对迁移至目标集群中的数据表进行解压;
[0027]启动模块,用于基于启动策略,启动所述目标集群。
[0028]本发明实施例提供的跨集群数据迁移方法和系统,通过使源集群的各子节点停止数据操作,以及将源集群的分布式数据库的内存中的数据持久化,能够实现迁移前源集群的分布式数据库中的数据持久化;通过对源集群的分布式数据库中的数据表进行压缩,能够减小数据传送量,将源集群的分布式数据库中的压缩后的数据表迁移至目标集群中,提高了迁移效率;然后通过将迁移前的源集群的分布式数据库中的数据表所占用的存储空间大小及总文件块数,与迁移后的目标集群的数据表占有的存储空间大小和总文件块数进行匹配,能够根据匹配结果验证迁移的完整性。

【专利附图】

【附图说明】
[0029]为了更清楚地说明本发明,下面将对本发明中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0030]图1为本发明实施例一提供的一种跨集群数据迁移方法的流程图;
[0031]图2为本发明实施例三提供的一种跨集群数据迁移方法的流程图;
[0032]图3a为本发明实施例四提供的一种跨集群数据迁移系统中源集群的主控节点的结构示意图;
[0033]图3b为本发明实施例四提供的一种跨集群数据迁移系统中目标集群的主控节点的结构示意图。

【具体实施方式】
[0034]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案作进一步详细描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
[0035]实施例一
[0036]请参阅图1,为本发明实施例一提供的一种跨集群数据迁移方法的流程图。本发明实施例的方法适用于跨集群数据迁移系统,该系统包括源集群和目标集群,所述源集群包括主控节点和至少一个子节点,所述目标集群包括主控节点和至少一个子节点。其中,源集群的主控节点和至少一个子节点形成HDFS,源集群中存储有待迁移的数据表;目标集群的主控节点和至少一个子节点也可形成HDFS,用于迁移存储源集群中的数据表。
[0037]该方法包括:
[0038]步骤110、源集群的主控节点调用停止命令控制源集群的各子节点停止数据操作;
[0039]本步骤具体是通过将源集群的各子节点停止数据操作,使得迁移前各节点中的数据持久化。具体地,可以通知各子节点对应的业务方停止数据写入或者读取操作,然后调用停止命令使源集群的各子节点停止数据操作。当然,也可以直接调用停止命令使源集群的各子节点停止数据操作。
[0040]步骤120、源集群的主控节点利用源集群的分布式数据库的清空缓冲区组件,将所述分布式数据库内存中的数据持久化到HDFS中;
[0041]本步骤具体是将源集群的分布式数据库中的数据持久化。
[0042]其中所述清空缓冲区组件用于将暂存在所述分布式数据库的内存中的数据持久化到HDFS的磁盘中。
[0043]步骤130、源集群的主控节点控制对源集群的分布式数据库所包含的数据表,采用设定的压缩算法进行压缩;
[0044]本步骤具体是对源集群中的待迁移的数据表进行压缩。具体地,可以通过查看各数据表的压缩状态,对未进行压缩的数据表进行压缩,具体可以采用LZO (Lempel-Ziv-Oberhumer)压缩算法、SNAPPY压缩算法或其他压缩算法。
[0045]其中,LZO压缩算法是一种高压缩比和解压速度极快的压缩算法,为无损压缩,也即压缩后的数据能准确还原。SNAPPY压缩算法是一个用于压缩和解压缩的开发包,旨在提供高速压缩速度和合理的压缩率。
[0046]分布式数据库利用HDFS作为文件存储系统,以数据表的形式存储数据,能在普通硬件环境基础上支撑十亿量级行、百万量级列的大型数据表,因此通过对待迁移的数据表进行压缩,能够有效减少数据传输率,有利于提高数据迁移效率。
[0047]步骤140、源集群的主控节点统计源集群的分布式数据库中的数据表所占用的HDFS的第一存储空间大小及第一总文件块数;
[0048]本步骤中,源集群的分布式数据库所包含的数据表作为待迁移的数据表,可以存储在该分布式数据库的根目录中,由于源集群的分布式数据库利用HDFS作为文件存储系统,因此基于HDFS形成了磁盘存储空间,该磁盘存储空间是源集群的各子节点的磁盘存储空间的总和,所述数据表在所述HDFS的磁盘存储空间中所占用的存储空间即为所述第一存储空间。
[0049]由于待迁移的数据表存储的数据量非常大,实际存储过程中,对所述待迁移的数据表采用的是分布式存储,也即将所述待迁移的数据表进行分块,形成多个文件块,将不同的文件块存储在源集群的不同子节点的磁盘中。所述第一总文件块数是指待迁移的数据表对应的文件块的块数的总和。
[0050]步骤150、源集群的主控节点基于预先获取的目标集群所包含的节点的IP地址与主机名称的映射关系,将源集群中分布式数据库中的数据表迁移至所述目标集群的分布式数据库中;
[0051]本步骤具体是将源集群中分布式数据库中的数据表迁移至目标集群的分布式数据库中。
[0052]需要说明的是,步骤110中只是停止源集群的分布式数据库提供的数据存取服务,而源集群的HDFS的服务仍正常运行。
[0053]还需要说明的是,根据目标集群所包含的节点的IP地址和主机名的映射关系,源集群的主控节点能够找到目标集群的HDFS,从而基于所述映射关系,能够实现源集群中分布式数据库中的数据表迁移至目标集群的HDFS中,由于目标集群的分布式数据库利用HDFS作为文件存储系统,从而能够实现源集群中分布式数据库中的数据表迁移至目标集群的分布式数据库中。
[0054]步骤160、如果获取到源集群的MapReduce (映射化简)进程的网页管理界面返回的数据迁移完成消息,则目标集群的主控节点统计目标集群的分布式数据库中的数据表占有的对应的HDFS的第二存储空间大小和第二总文件块数,并将所述第二存储空间大小和第二总文件块数与所述第一存储空间大小和所述第一总文件块数匹配;
[0055]本步骤具体是在监测到所述数据表迁移完成之后,首先统计目标集群的分布式数据库的数据表占有的对应的HDFS的第二存储空间大小和第二总文件块数,然后将所述第二存储空间大小与所述第一存储空间大小进行比对,并将第二总文件块数与所述第一总文件块数进行比对。
[0056]本步骤中所述第二存储空间大小和所述第二总文件块数与所述第一存储空间大小和所述第一总文件块数类似,此处不再赘述。
[0057]其中,MapReduce是一种实现分布式并行计算任务的通用编程模型,用于处理大规模数据的并行运算。通过MapReduce进程的网页管理界面可以监测具体的迁移情况,例如,实时迁移速度、迁移百分比、估计剩余时间和已迁移数据的描述信息等。
[0058]步骤170、如果匹配成功,则目标集群的主控节点采用与所述设定的压缩算法对应的解压算法对迁移至目标集群中的数据表进行解压;
[0059]本步骤中匹配成功是指迁移前的源集群的分布式数据库中的数据表所占用的HDFS的第一存储空间大小与迁移后所占用的目标集群的HDFS的第二存储空间大小一致,以及迁移前的总文件块数与迁移后的总文件块数一致,也即所述匹配成功即为源集群的分布式数据库中的数据表被完整地迁移到了目标集群的分布式数据库中。
[0060]本步骤具体是在数据表完整迁移之后,解压迁移至目标集群中数据表。
[0061]步骤180、目标集群的主控节点基于启动策略,启动所述目标集群。
[0062]本步骤具体是启动所述目标集群,以使所述目标集群的各节点正常工作。
[0063]本实施例的技术方案,通过使源集群的各子节点停止数据操作,以及将源集群的分布式数据库的内存中的数据持久化,能够实现迁移前源集群的分布式数据库中的数据持久化;通过对源集群的分布式数据库中的数据表进行压缩,能够减小数据传送量,将源集群的分布式数据库中的压缩后的数据表迁移至目标集群中,提高了迁移效率;然后通过将迁移前的源集群的分布式数据库中的数据表所占用的存储空间大小及总文件块数,与迁移后的目标集群的数据表占有的存储空间大小和总文件块数进行匹配,能够根据匹配结果验证迁移的完整性。
[0064]实施例二
[0065]本实施例在上述实施例的基础上,在源集群的主控节点统计源集群的分布式数据库中的数据表所占用的HDFS的第一存储空间大小及第一总文件块数之前,还包括:
[0066]源集群的主控节点利用源集群的分布式数据库的完整文件合并组件,清除所述源集群的分布式数据库的磁盘存储空间中符合预设清除策略的数据表。
[0067]本步骤具体是在对待迁移的数据表进行压缩之后,清除所述源集群的分布式数据库的磁盘存储空间中的失效的数据表,以进一步减少迁移的数据量,提高迁移效率。
[0068]其中,所述预设清除策略可以有多种实现方式,例如包括下述至少一种:
[0069]将所述源集群的分布式数据库的磁盘存储空间中的带有删除标识的数据表作为待清除的数据表;
[0070]将所述源集群的分布式数据库的磁盘存储空间中的达到生存时间的数据表作为待清除的数据表;
[0071]需要说明的是,可以根据需要预先设置数据表的生存时间,根据数据表的生存时间淘汰过期的数据表。以电子商务平台为例,通常,会根据促销活动的持续时间设置对应的数据表的生存时间,例如30天、7天、或特定的某一天中的某个时段,如店庆这一天从早上10点到晚上10点,在店庆结束时,生存时间针对此次店庆的数据表即为过期的数据表,通过清除过期的数据表,有利于节省存储空间和提高迁移效率。
[0072]将所述源集群的分布式数据库的磁盘存储空间中的最大版本数大于门限值的数据表作为待清除的数据表。
[0073]需要说明的是,可以根据需要预先设置数据表的最大版本数,通常设置为3。对于更新比较频繁的数据表可以设置为1,从而能够快速地淘汰失效的数据表,有利于节省存储空间和提闻迁移效率。
[0074]本实施例的技术方案,在对迁移前源集群的分布式数据库中的数据进行持久化之后,对待迁移的数据表进行压缩,能够减小传输的数据量,并且通过清除所述源集群的分布式数据库的磁盘存储空间中的失效的数据表,能够进一步减少迁移的数据量,将源集群的分布式数据库中的经过压缩和清除操作的数据表迁移至目标集群中,提高了迁移效率;通过将迁移前的源集群的分布式数据库的数据表所占用的存储空间大小及总文件块数,与迁移后的目标集群的数据表占有的存储空间大小和总文件块数进行匹配,能够根据匹配结果验证迁移的完整性。
[0075]在上述方案中,可以通过调用源集群的分布式数据库命令行接口触发清空缓冲区组件和完整文件合并组件。
[0076]其中,命令行接口是操作系统与用户的交互界面。在Linux操作系统中,称命令行接口为shell,其作用主要是为用户提供服务,如接收来自键盘的输入数据,或在屏幕上显示执行结果等。
[0077]在上述方案中,在目标集群的主控节点采用与所述设定的压缩算法对应的解压算法对迁移至目标集群中的数据表进行解压之前,还优选包括:
[0078]目标集群的主控节点调用目标集群中的一致性检测组件,检测目标集群的分布式数据库所包含的数据表的一致性;
[0079]如果一致,则触发目标集群的主控节点采用与所述设定的压缩算法对应的解压算法对迁移至目标集群中的数据表进行解压。
[0080]需要说明的是,检测数据表的一致性是指检测数据表的描述信息与目标集群的HDFS中真实存在的数据表的属性信息是否一致。如果一致,则触发目标集群的主控节点采用与所述设定的压缩算法对应的解压算法对迁移至目标集群中的数据表进行解压;如果不一致,则利用所述一致性检测组件进行修复。本步骤是在进行数据表迁移完整性验证之后的补充验证,可以提高迁移至目标集群中的数据表的一致性。
[0081]实施例三
[0082]请参阅图2,为本发明实施例三提供的一种跨集群数据迁移方法的流程图。本实施例在上述各实施例的基础上,提供了目标集群的主控节点基于启动策略,启动所述目标集群的优选方案。该优选方法包括:
[0083]步骤210、目标集群的主控节点调用启动命令启动目标集群;
[0084]步骤220、如果目标集群的分布式数据库关联的日志文件中不存在错误日志信息或警告日志信息,则目标集群的主控节点调用目标集群的分布式数据库中的整体健康度检查组件,查看目标集群的整体健康度;
[0085]本步骤具体是查看目标集群所包含的节点中的与分布式数据库关联的日志文件,如果存在错误日志信息或警告日志信息,则根据提示调用目标集群的分布式数据库的相关组件解决问题;如果不存在错误日志信息或警告日志信息,则利用目标集群的分布式数据库的健康度检查组件,查看目标集群的整体健康度。
[0086]其中,查看目标集群的整体健康度包括查看目标集群的数据表是否处于正常状态。
[0087]步骤230、目标集群的主控节点调用分布式数据库的命令行接口将所述数据表的状态置为使能状态。
[0088]本步骤具体是根据步骤220中的目标集群的整体健康度的检测结果,使目标集群中的数据表的状态维持在“使能”的正常状态。
[0089]本实施例的技术方案,通过在启动目标集群之后,查看目标集群所包含的节点中的与分布式数据库关联的日志文件,如果存在错误日志信息或警告日志信息,则根据提示调用目标集群的分布式数据库的相关组件解决问题;如果不存在错误日志信息或警告日志信息,则利用目标集群的分布式数据库的健康度检查组件,查看目标集群的整体健康度;并基于目标集群的整体健康度的检测结果,使目标集群中的数据表的状态维持在“使能”的正常状态,从而使目标集群中的数据表能够提供正常的存取服务。
[0090]在上述方案中,在通过目标集群的分布式数据库管理页面,如果目标集群的分布式数据库所包含的数据表没有处于使能状态,则目标集群的主控节点调用分布式数据库的命令行接口将所述数据表的状态置为使能状态之后,还优选包括:
[0091]将目标集群所包含的节点的IP地址与主机名称的映射关系,以及目标集群的分布式数据库中的连接信息发送至业务方,并通知所述业务方对目标集群的数据服务进行验证。
[0092]实施例四
[0093]请参阅图3a和图3b。本发明实施例四提供一种跨集群数据迁移系统,该系统包括:源集群和目标集群,所述源集群包括主控节点和至少一个子节点,所述目标集群包括主控节点和至少一个子节点。
[0094]所述源集群的主控节点包括:停止模块310、持久化模块320、压缩模块330、统计模块340和迁移模块350。
[0095]所述目标集群的主控节点包括:统计模块360、解压模块370和启动模块380。
[0096]其中,停止模块310用于调用停止命令控制源集群的各子节点停止数据操作;持久化模块320用于利用源集群的分布式数据库的清空缓冲区组件,将所述分布式数据库内存中的数据持久化到HDFS中;压缩模块330用于对源集群的分布式数据库所包含的数据表,采用设定的压缩算法进行压缩;统计模块340用于统计源集群的分布式数据库中的数据表所占用的HDFS的第一存储空间大小及第一总文件块数;迁移模块350用于基于预先获取的目标集群所包含的节点的IP地址与主机名称的映射关系,将源集群中分布式数据库中的数据表迁移至所述目标集群的分布式数据库中;
[0097]其中,统计模块360用于如果获取到源集群的映射化简进程的网页管理界面返回的数据迁移完成消息,则统计目标集群的分布式数据库中的数据表占有的对应的HDFS的第二存储空间大小和第二总文件块数,并将所述第二存储空间大小和第二总文件块数与所述第一存储空间大小和所述第一总文件块数匹配;解压模块370用于如果匹配成功,则采用与所述设定的压缩算法对应的解压算法对迁移至目标集群中的数据表进行解压;启动模块380用于基于启动策略,启动所述目标集群。
[0098]本实施例的技术方案,通过使源集群的各子节点停止数据操作,以及将源集群的分布式数据库的内存中的数据持久化,能够实现迁移前源集群的分布式数据库中的数据持久化;通过对源集群的分布式数据库中的数据表进行压缩,能够减小数据传送量,将源集群的分布式数据库中的压缩后的数据表迁移至目标集群中,提高了迁移效率;然后通过将迁移前的源集群的分布式数据库中的数据表所占用的存储空间大小及总文件块数,与迁移后的目标集群的数据表占有的存储空间大小和总文件块数进行匹配,能够根据匹配结果验证迁移的完整性。
[0099]在上述方案中,所述源集群的主控节点还优选包括:清除模块,用于在统计源集群的分布式数据库中的数据表所占用的HDFS的第一存储空间大小及第一总文件块数之前,利用源集群的分布式数据库的完整文件合并组件,清除所述源集群的分布式数据库的磁盘存储空间中符合预设清除策略的数据表。
[0100]在上述方案中,所述预设清除策略包括下述至少一项:
[0101]将所述源集群的分布式数据库的磁盘存储空间中的带有删除标识的数据表作为待清除的数据表;
[0102]将所述源集群的分布式数据库的磁盘存储空间中的达到生存时间的数据表作为待清除的数据表;
[0103]将所述源集群的分布式数据库的磁盘存储空间中的最大版本数大于门限值的数据表作为待清除的数据表。
[0104]在上述方案中,所述持久化模块310具体用于通过调用源集群的分布式数据库命令行接口触发清空缓冲区组件,将所述分布式数据库内存中的数据持久化到分布式文件系统HDFS中;所述清除模块,具体用于在统计源集群的分布式数据库中的数据表所占用的HDFS的第一存储空间大小及第一总文件块数之前,通过调用源集群的分布式数据库命令行接口触发完整文件合并组件,清除所述源集群的分布式数据库的磁盘存储空间中符合预设清除策略的数据表。
[0105]在上述方案中,所述目标集群的主控节点还优选包括:一致性检测模块,用于在采用与所述设定的压缩算法对应的解压算法对迁移至目标集群中的数据表进行解压之前,调用目标集群中的一致性检测组件,检测目标集群的分布式数据库所包含的数据表的一致性;如果一致,则触发目标集群的主控节点采用与所述设定的压缩算法对应的解压算法对迁移至目标集群中的数据表进行解压。
[0106]在上述方案中,所述启动模块390优选包括:启动单元、整体健康度检测单元和数据表状态设置单元。
[0107]其中,启动单元用于调用启动命令启动目标集群;整体健康度检测单元用于如果目标集群的分布式数据库关联的日志文件中不存在错误日志信息或警告日志信息,则调用目标集群的分布式数据库中的整体健康度检查组件,查看目标集群的整体健康度;数据表状态设置单元用于调用分布式数据库的命令行接口将所述数据表的状态置为使能状态。
[0108]在上述方案中,所述启动模块390还可以包括:数据服务验证单元,用于在通过目标集群的分布式数据库管理页面,如果目标集群的分布式数据库所包含的数据表没有处于使能状态,则调用分布式数据库的命令行接口将所述数据表的状态置为使能状态之后,将目标集群所包含的节点的IP地址与主机名称的映射关系,以及目标集群的分布式数据库中的连接信息发送至业务方,并通知所述业务方对目标集群的数据服务进行验证。
[0109]本发明实施例提供的跨集群数据迁移系统中源集群的主控节点和目标集群的主控节点可执行本发明任意实施例所提供的跨集群数据迁移方法,具备执行方法相应的功能模块和有益效果。
[0110]最后应说明的是:以上各实施例仅用于说明本发明的技术方案,而非对其进行限制;实施例中优选的实施方式,并非对其进行限制,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种跨集群数据迁移方法,其特征在于,包括: 源集群的主控节点调用停止命令控制源集群的各子节点停止数据操作; 源集群的主控节点利用源集群的分布式数据库的清空缓冲区组件,将所述分布式数据库内存中的数据持久化到分布式文件系统HDFS中; 源集群的主控节点控制对源集群的分布式数据库所包含的数据表,采用设定的压缩算法进行压缩; 源集群的主控节点统计源集群的分布式数据库中的数据表所占用的HDFS的第一存储空间大小及第一总文件块数; 源集群的主控节点基于预先获取的目标集群所包含的节点的IP地址与主机名称的映射关系,将源集群中分布式数据库中的数据表迁移至所述目标集群的分布式数据库中;如果获取到源集群的映射化简进程的网页管理界面返回的数据迁移完成消息,则目标集群的主控节点统计目标集群的分布式数据库中的数据表占有的对应的HDFS的第二存储空间大小和第二总文件块数,并将所述第二存储空间大小和第二总文件块数与所述第一存储空间大小和所述第一总文件块数匹配; 如果匹配成功,则目标集群的主控节点采用与所述设定的压缩算法对应的解压算法对迁移至目标集群中的数据表进行解压; 目标集群的主控节点基于启动策略,启动所述目标集群。
2.根据权利要求1所述的方法,其特征在于,在源集群的主控节点统计源集群的分布式数据库中的数据表所占用的HDFS的第一存储空间大小及第一总文件块数之前,还包括: 源集群的主控节点利用源集群的分布式数据库的完整文件合并组件,清除所述源集群的分布式数据库的磁盘存储空间中符合预设清除策略的数据表。
3.根据权利要求2所述的方法,其特征在于,所述预设清除策略包括下述至少一项: 将所述源集群的分布式数据库的磁盘存储空间中的带有删除标识的数据表作为待清除的数据表; 将所述源集群的分布式数据库的磁盘存储空间中的达到生存时间的数据表作为待清除的数据表; 将所述源集群的分布式数据库的磁盘存储空间中的最大版本数大于门限值的数据表作为待清除的数据表。
4.根据权利要求2所述的方法,其特征在于,通过调用源集群的分布式数据库命令行接口触发清空缓冲区组件和完整文件合并组件。
5.根据权利要求1所述的方法,其特征在于,在目标集群的主控节点采用与所述设定的压缩算法对应的解压算法对迁移至目标集群中的数据表进行解压之前,还包括: 目标集群的主控节点调用目标集群中的一致性检测组件,检测目标集群的分布式数据库所包含的数据表的一致性; 如果一致,则触发目标集群的主控节点采用与所述设定的压缩算法对应的解压算法对迁移至目标集群中的数据表进行解压。
6.根据权利要求1-5任一所述的方法,其特征在于,目标集群的主控节点基于启动策略,启动所述目标集群,包括: 目标集群的主控节点调用启动命令启动目标集群; 如果目标集群的分布式数据库关联的日志文件中不存在错误日志信息或警告日志信息,则目标集群的主控节点调用目标集群的分布式数据库中的整体健康度检查组件,查看目标集群的整体健康度; 目标集群的主控节点调用分布式数据库的命令行接口将所述数据表的状态置为使能状态。
7.根据权利要求6所述的方法,其特征在于,在通过目标集群的分布式数据库管理页面,如果目标集群的分布式数据库所包含的数据表没有处于使能状态,则目标集群的主控节点调用分布式数据库的命令行接口将所述数据表的状态置为使能状态之后,还包括: 将目标集群所包含的节点的IP地址与主机名称的映射关系,以及目标集群的分布式数据库中的连接信息发送至业务方,并通知所述业务方对目标集群的数据服务进行验证。
8.一种跨集群数据迁移系统,包括源集群和目标集群,所述源集群包括主控节点和至少一个子节点,所述目标集群包括主控节点和至少一个子节点,其特征在于: 所述源集群的主控节点包括: 停止模块,用于调用停止命令控制源集群的各子节点停止数据操作; 持久化模块,用于利用源集群的分布式数据库的清空缓冲区组件,将所述分布式数据库内存中的数据持久化到分布式文件系统HDFS中; 压缩模块,用于对源集群的分布式数据库所包含的数据表,采用设定的压缩算法进行压缩; 统计模块,用于统计源集群的分布式数据库中的数据表所占用的HDFS的第一存储空间大小及第一总文件块数; 迁移模块,用于基于预先获取的目标集群所包含的节点的IP地址与主机名称的映射关系,将源集群中分布式数据库中的数据表迁移至所述目标集群的分布式数据库中; 所述目标集群的主控节点包括: 统计模块,用于如果获取到源集群的映射化简进程的网页管理界面返回的数据迁移完成消息,则统计目标集群的分布式数据库中的数据表占有的对应的HDFS的第二存储空间大小和第二总文件块数,并将所述第二存储空间大小和第二总文件块数与所述第一存储空间大小和所述第一总文件块数匹配; 解压模块,用于如果匹配成功,则采用与所述设定的压缩算法对应的解压算法对迁移至目标集群中的数据表进行解压; 启动模块,用于基于启动策略,启动所述目标集群。
9.根据权利要求8所述的系统,其特征在于,所述源集群的主控节点还包括: 清除模块,用于在统计源集群的分布式数据库中的数据表所占用的HDFS的第一存储空间大小及第一总文件块数之前,利用源集群的分布式数据库的完整文件合并组件,清除所述源集群的分布式数据库的磁盘存储空间中符合预设清除策略的数据表。
10.根据权利要求9所述的系统,其特征在于,所述预设清除策略包括下述至少一项: 将所述源集群的分布式数据库的磁盘存储空间中的带有删除标识的数据表作为待清除的数据表; 将所述源集群的分布式数据库的磁盘存储空间中的达到生存时间的数据表作为待清除的数据表; 将所述源集群的分布式数据库的磁盘存储空间中的最大版本数大于门限值的数据表作为待清除的数据表。
【文档编号】G06F17/30GK104239493SQ201410455695
【公开日】2014年12月24日 申请日期:2014年9月9日 优先权日:2014年9月9日
【发明者】黄刚, 何洋 申请人:北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1