CN115103020B - 数据迁移处理方法和装置 - Google Patents
数据迁移处理方法和装置 Download PDFInfo
- Publication number
- CN115103020B CN115103020B CN202211022658.3A CN202211022658A CN115103020B CN 115103020 B CN115103020 B CN 115103020B CN 202211022658 A CN202211022658 A CN 202211022658A CN 115103020 B CN115103020 B CN 115103020B
- Authority
- CN
- China
- Prior art keywords
- data
- migrated
- spark
- hdfs
- node
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据迁移处理方法和装置,涉及大数据处理技术领域。该方法包括:接收数据迁移指令,数据迁移指令包括待迁移数据的数据量;根据待迁移数据的数据量确定所需使用的中转节点以及该中转节点上运行的数据执行节点的个数,每个数据执行节点中包含Gpfdist,各数据执行节点关联至少一个存储节点;向Master发送可使用的数据执行节点的通知信息;通过各数据执行节点中的Gpfdist,分别接收与该数据执行节点关联的存储节点传输的待迁移数据,并存储待迁移数据,以使HDFS通过各数据执行节点获取待迁移数据。本申请的方法使得待迁移数据的数据量不再受限于一个中转节点服务器的可用存储空间,且提高了数据迁移效率。
Description
技术领域
本申请涉及大数据处理技术领域,尤其涉及一种数据迁移处理方法和装置。
背景技术
在金融、互联网、物联网等领域,无时无刻不在产生大量的数据。根据数据类型、应用场景等因素,不同的数据通常会选择不同类型的存储系统来存储。中心数据库(Greenplum)、分布式文件存储系统(HDFS)即为两种常用的数据存储平台。
相对于Greenplum来说,HDFS更稳定、可靠,且可匹配处理海量数据的能力也更高。因此,HDFS是目前常用大数据处理平台中的主流数据存储系统。因此,现有技术时常存在需要将Greenplum中的数据迁移到HDFS,以支持大数据分析的需求。具体的数据迁移过程中,通常需要使用并行文件服务工具(Gpfdist)。Greenplum中的元数据服务器(Master)接收数据迁移指令后,将数据迁移指令分发给与待迁移数据相关的数据存储节点(Segment);各Segment根据数据迁移指令将数据传输于一个运行了Gpfdist的中转节点服务器;然后大数据处理平台从该中转节点服务器上获取数据,再将数据写入HDFS中。各Segment向中转节点服务器传输数据的过程需要借助外部表。该外部表在建立时,指定了各Segment所要访问的中转节点服务器的IP,使得各Segment均能够将数据传输于中转节点服务器。
然而,现有的迁移方法中,各Segment向中转节点服务器传输的数据量,受限于该中转节点服务器的存储空间。现有技术时常出现要么需要多次迁移过程来完成全部数据的迁移,要么数据迁移失败的现象。
发明内容
本申请提供了一种数据迁移处理方法和装置,以解决现有技术中待迁移数据的数据量受限于中转节点服务器的存储空间的问题。
根据本申请的第一方面,提供了一种数据迁移处理方法,包括:
接收中心数据库Greenplum中元数据服务器Master发送的数据迁移指令,所述数据迁移指令中包括待迁移数据的数据量;
根据所述待迁移数据的数据量确定所需使用的中转节点以及该中转节点上运行的数据执行节点Spark Executor的个数,每个Spark Executor中包含并行文件服务工具Gpfdist,每个Spark Executor关联所述Greenplum中的至少一个存储节点Segment;
向所述Master发送可使用的Spark Executor的通知信息;
通过所运行的各Spark Executor中的Gpfdist,分别接收与该Spark Executor关联的Segment传输而来的待迁移数据,并存储所述待迁移数据,以使分布式文件存储系统HDFS通过各Spark Executor获取所述待迁移数据。
第二方面,本申请提供一种数据迁移处理装置,包括:
第一接收模块,用于接收中心数据库Greenplum中元数据服务器Master发送的数据迁移指令,所述数据迁移指令中包括待迁移数据的数据量大小;
确定模块,用于根据所述待迁移数据的数据量确定所需使用的中转节点以及该中转节点上运行的数据执行节点Spark Executor的个数,每个Spark Executor中包含并行文件服务工具Gpfdist,每个Spark Executor关联所述Greenplum中的至少一个存储节点Segment;
通知模块,用于向所述Master发送可使用的Spark Executor的通知信息;
第二接收模块,用于通过所运行的各Spark Executor中的Gpfdist,分别接收与该Spark Executor关联的Segment传输而来的待迁移数据,并存储所述待迁移数据,以使分布式文件存储系统HDFS通过各Spark Executor获取所述待迁移数据。
第三方面,本申请提供一种数据迁移处理系统,包括:
中心数据库Greenplum和中转节点;
所述Greenplum中包括元数据服务器Master和至少两个存储节点Segment;
所述中转节点用于执行上述的数据迁移处理方法。
第四方面,本申请提供一种电子设备,包括:
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行上述的数据迁移处理方法。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述的数据迁移处理方法。
第六方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的数据迁移处理方法的步骤。
本申请提供一种数据迁移处理方法和装置,通过待迁移数据的数据量确定所需使用的中转节点、各中转节点上运行的Spark Executor的个数,使得待迁移数据的数据量不再受限于一个中转节点的可用存储空间的限制,同时各中转节点上运行至少一个SparkExecutor,每个Spark Executor关联至少一个Segment,使得中转节点可以通过多个SparkExecutor并行的接收Segment传输的待迁移数据,提高了数据迁移效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的数据迁移处理系统的架构示意图一;
图2为本申请实施例提供的现有数据迁移处理方法的过程示意图;
图3为本申请实施例提供的数据迁移处理方法的流程示意图一;
图4为本申请实施例提供的数据迁移处理方法的流程示意图二;
图5为本申请实施例提供的数据迁移处理方法的过程示意图一;
图6为本申请实施例提供的数据迁移处理方法的过程示意图二;
图7为本申请实施例提供的数据迁移处理方法的过程示意图三;
图8为本申请实施例提供的数据迁移处理装置的结构示意图;
图9为本申请实施例提供的数据迁移处理系统的架构示意图二;
图10为本申请实施例提供的另一种数据迁移处理系统的架构示意图二;
图11为本申请实施例提供的电子设备的硬件结构图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
为了便于理解,首先对本申请实施例的应用场景进行介绍。
图1为本申请实施例提供的数据迁移处理系统的架构示意图一。如图1所示,数据迁移处理系统包括数据库A 101、中转节点102、数据库B 103。数据库A 101、数据库B 103均用于存储大量数据,均可以包括多台服务器设备,每台服务器上可以安装并运行多种应用软件程序。中转节点102可以为一台或者多台服务器,且中转节点102中的服务器上均可以运行多种应用软件程序。中转节点102用于接收数据库A 101传输的待迁移数据,然后将待迁移数据存储于中转节点102中,并且可以将存储的待迁移数据写入数据库B 103。数据库B103可以用于接收中转节点102发送的上述待迁移数据,还可以向中转节点102获取上述的待迁移数据。
数据库A 101可以为Greenplum,Greenplum为一种常用的中心数据库,能够用于存储大量数据。Greenplum中包括Master、Segment。其中Master为用于存储元数据的服务器;Segment为用于存储数据的服务器。并且,当Master接收任务请求后,可以将该任务请求分别分发于每个Segment。
数据库B 103可以为HDFS,HDFS为能够用于存储海量数据的主流分布式文件存储系统。HDFS可以应用于多种大数据处理平台中,例如分布式系统基础架构Hadoop等。
随着信息化时代的发展,企业需要存储处理更大量的数据,并且需要寻求更稳定、可靠的数据存储系统。相比于Greenplum,HDFS为更稳定、可靠的数据存储系统。为了匹配对于海量数据的存储与处理,有时需要将Greenplum中存储的数据迁移至HDFS中。
图2为本申请实施例提供的现有数据迁移处理方法的过程示意图。如图2所示,Greenplum向HDFS的数据迁移,通常需要先将待迁移数据传输至中转节点中,然后上述的大数据处理平台从该中转节点获取待迁移数据,再将该待迁移数据写入HDFS中。
该中转节点为一台运行有Gpfdist的服务器。Greenplum中的Segment分别借助外部表将待迁移数据写入中转节点中。外部表为Greenplum中的一种数据表,其只有表的定义,没有数据,可用于Greenplum中数据的导入或导出。外部表在建立时,指定了中转节点的IP地址,使得Segment借助外部表向中转节点传输数据时,能够将数据存储于中转节点中。外部表可以建立在Master中,并且含有该外部表的Master可以向各Segment发送数据迁移请求,各Segment接收数据迁移请求后,分别将待迁移数据插入外部表中;Gpfdist能够接收流输入数据,使得运行有Gpfdist的中转节点能够接收含有外部表的Master传输的数据,进而将数据存储于中转节点中。
外部表中指定了运行有Gpfdist的中转节点的唯一IP地址,使得Segment传输的待迁移数据均存储于一台服务器中。因此,上述的待迁移数据的数据量不能超过该中转节点的可用存储空间。如果待迁移数据的数据量大于该中转节点的可用存储空间,需要分多次将待迁移数据迁移至HDFS中;此外,还可能会造成此次数据迁移过程失败,使得目前的数据迁移效率较低。
为了提高数据迁移的效率,打破中转节点的可用存储空间对于待迁移数据的数据量的限制,可以根据待迁移数据的数据量的大小采用一个或者多个中转节点,以保证能够一次将待迁移数据从Greenplum迁移至HDFS中。然而,由于外部表中中转节点的IP是唯一的,因此,增加中转节点后,也难以使多个中转节点同时接收插入至外部表中的待迁移数据。为了打破外部表对中转节点唯一性的限制,可以让不同的中转节点分别关联不同的Segment,并且使各中转节点能够同时接收与其关联的Segment发送的待迁移数据。
大数据计算引擎Spark是一种通用的大数据快速处理引擎。并且Spark中能够启动多个数据执行节点(Spark Executor),Spark Executor是Spark接收的任务的执行单元。当各中转节点分别运行有Spark Executor时,能够将数据迁移任务依据Spark Executor的数量分为多个。且各Spark Executor分别关联不同的Segment,使中转节点能够通过其运行的Spark Executor分别接收与该Spark Executor关联的Segment传输的待迁移数据。同时,为了能够使中转节点能够直接与Segment进行交互,接收Segment传输的待迁移数据,将Gpfdist运行于各Spark Executor中,使得中转节点分别能够接收Segment发送的待迁移数据。
本申请实施例提供一种数据迁移处理方法和装置,应用于大数据处理技术领域。在本申请实施例提供的数据迁移处理方法中,根据待迁移数据的数据量确定所需中转节点的数量、中转节点上运行的Spark Executor的数量,并使每个Spark Executor关联至少一个Segment,使得待迁移数据的数据量不再受限于中转节点的可用存储空间,并且能够一次性并行的将数据存储于中转节点,提高了数据迁移效率。
下面采用详细的实施例,对本申请实施例的数据迁移处理方法和装置进行详细说明。
图3为本申请实施例提供的数据迁移处理方法的流程示意图一。如图3所示,该方法包括:
S301、接收中心数据库Greenplum中元数据服务器Master发送的数据迁移指令,数据迁移指令中包括待迁移数据的数据量。
Greenplum为用于存储大量数据的数据库,其可以包括多个Greenplum集群,每个Greenplum集群中均包括多个Segment和一个Master。Master可以接收数据迁移任务请求,并可以将数据迁移任务请求发送于各Segment。待迁移数据为存储于Segment中且将要从Greenplum迁移至HDFS的数据,其可以为存储于Segment中的全部或者部分数据。
Master根据数据迁移任务请求向中转节点发送数据迁移指令。数据迁移指令中包含待迁移数据的数据量大小的信息。
S302、根据待迁移数据的数据量确定所需使用的中转节点以及该中转节点上运行的数据执行节点Spark Executor的个数,每个Spark Executor中包含并行文件服务工具Gpfdist,每个Spark Executor关联Greenplum中的至少一个存储节点Segment。
中转节点可以为运行有Spark Executor的服务器,且中转节点上可以运行一个或多个Spark Executor。每个Spark Executor中嵌入有Gpfdist,Spark Executor能够启动嵌入其内部的Gpfdist。中转节点中的每个Spark Executor均可以关联一个或者多个Segment。
首先根据待迁移数据的数据量确定所要使用的中转节点,中转节点的内存空间可以大于待迁移数据的数据量,以使所有的待迁移数据均可以存储于中转节点中。每个中转节点中运行至少一个Spark Executor。Spark Executor的数量可以根据该中转节点的可用存储空间的大小来确定。当中转节点的可用存储空间较大时,可以运行更多的SparkExecutor,以使该中转节点能够同时接收多个Segment传输的待迁移数据,提高数据迁移效率。Spark Executor中分别运行有Gpfdist,使得各中转节点可以通过Gpfdist直接跟Segment进行交互,直接接收Segment传输的待迁移数据。当Segment中存储的待迁移数据的数据量较小时,每个Spark Executor可以关联多个Segment;当Segment中存储的待迁移数据的数据量较大时,每个Spark Executor可以关联一个Segment。
在一种可能的实施方式中,Spark Executor与Segment之间采用如下方式进行关联:确定各Segment的ID标识、各Spark Executor的执行器标识,ID标识可以为100、102、103等;执行器标识可以为0、1、2、3等。将各Segment的ID标识按照序号大小进行排序,例如ID标识为101、102、104、105、103、106时,排序后为101、102、103、104、105、106。当SparkExecutor个数为5时,执行器标识可以为0、1、2、3、4。将排序后的ID标识与执行器标识依次进行关联,101与0进行关联;102与1进行关联;103与2进行关联;104与3进行关联;105与4进行关联,对于未关联的106,可以将其与任一执行器标识关联,例如可以与1进行关联。则执行器标识为1的Spark Executor分别接收ID标识为102和106的Segment传输的待迁移数据。
在另一种可能的实施方式中,Spark Executor的运行个数根据存储有待迁移数据的Segment的个数进行确定。例如,存储有待迁移数据的Segment的数量为5,则在中转节点中共运行5个Spark Executor,使得Spark Executor与Segment进行一一关联。
S303、向Master发送可使用的Spark Executor的通知信息。
可使用的Spark Executor的通知信息为Segment关联的Spark Executor的信息。Segment向中转节点传输待迁移数据之前,需要先接收上述的通知信息,从而确定该Segment需要向那个Spark Executor对应的中转节点传输数据。由于Master可以向各Segment发送通知信息,因此首先向Master发送可使用的Spark Executor的通知信息,然后Master再将该通知信息发送给各个Segment,以使各Segment获取与其关联的SparkExecutor的信息,从而向与其关联的Spark Executor对应的中转节点传输待迁移数据。
S304、通过所运行的各Spark Executor中的Gpfdist,分别接收与该SparkExecutor关联的Segment传输而来的待迁移数据,并存储待迁移数据,以使分布式文件存储系统HDFS通过各Spark Executor获取待迁移数据。
通过Spark Executor中的Gpfdist,使得对应的中转节点能够接收与其关联的Segment传输的流输入数据。一种可能的实施方式中,待迁移数据可以存储于中转节点的内存中,以提高待迁移数据从Segment向中转节点的迁移效率。待迁移数据存储于中转节点中,该中转节点可以为一个或者多个。待迁移数据写入HDFS中,需要HDFS通过各中转节点中的Spark Executor并行的获取待迁移数据。
本实施例提供的数据迁移处理方法,根据待迁移数据的数据量确定中转节点、中转节点中运行的Spark Executor的个数,使得数据迁移过程中,待迁移数据的数据量不再受限于中转节点的存储空间的大小。并且每个中转节点中可以运行至少一个SparkExecutor,每个Spark Executor关联至少一个Segment,使得各Segment可以同时向与其关联的Spark Executor对应的中转节点传输待迁移数据,提高了数据迁移效率。
图4为本申请实施例提供的数据迁移处理方法的流程示意图二。如图4所示,该方法包括:
S401、接收中心数据库Greenplum中元数据服务器Master发送的数据迁移指令,数据迁移指令中包括待迁移数据的数据量。
应理解,S401的具体实现方式与图3中的S301类似,此处不做赘述。
S402、根据待迁移数据的数据量确定所需使用的中转节点以及该中转节点上运行的数据执行节点Spark Executor的个数,每个Spark Executor中包含并行文件服务工具Gpfdist、HDFS的客户端程序,每个Spark Executor关联Greenplum中的至少一个存储节点Segment。
应理解,S402的具体实现方式与图3中的S302类似,此处不做赘述。S402a、S402b是S402中“根据待迁移数据的数据量确定所需使用的中转节点以及该中转节点上运行的数据执行节点Spark Executor的个数”的两种可能的实施方式。
S402a、根据待迁移数据的数据量以及各中转节点的可用存储空间大小,确定一个中转节点,该中转节点上运行至少两个Spark Executor,每个Spark Executor中包含Gpfdist、HDFS的客户端程序,每个Spark Executor关联Greenplum中的至少一个Segment。
待迁移数据的数据量是指在中转节点中存储待迁移数据所需的存储空间的大小。中转节点的可用存储空间大小是指中转节点中可用于存储待迁移数据的存储空间大小。该存储空间可以为中转节点的磁盘的可用存储空间,也可以为中转节点的内存可用空间。
应理解,根据待迁移数据的数据量以及各中转节点的可用存储空间大小,确定一个中转节点,是指待迁移数据可以存储于一个中转节点中,即该中转节点的可用存储空间不小于待迁移数据的数据量。例如,当某中转节点的可用存储空间为4G时,且待迁移数据的数据量为3G,此时可以确定该中转节点用于暂时存储上述的待迁移数据。在本申请实施例中,中转节点的数量可以根据待迁移数据的数据量而变化,即中转节点的数量没有限制。在待迁移数据的数据量较小时,可以选择更少的中转节点。当待迁移数据可以被存储于一个中转节点中时,则采用一个中转节点,不会造成资源的浪费。同时为了提高数据传输效率,采用多线程传输,即Spark Executor数量不少于两个。以使所有存储待迁移数据的Segment可以通过多个Spark Executor向中转节点传输数据。
在一个可能的实施方式中,可以选用可用存储空间与待迁移数据的数据量更接近的中转节点。例如,当待迁移数据的数据量为3G时,第一中转节点的可用存储空间为3.5G,第二中转节点的可用存储空间为4.5G时,此时可以确定第一中转节点用于存储上述的待迁移数据。
S402b、根据待迁移数据的数据量以及各中转节点的可用存储空间大小,确定至少两个中转节点,每个中转节点上运行至少一个Spark Executor,每个Spark Executor中包含Gpfdist、HDFS的客户端程序,每个Spark Executor关联Greenplum中的至少一个Segment。
当待迁移数据的数据量较大,中转节点的可用存储空间均小于待迁移数据的数据量时,可以确定更多的中转节点,即将待迁移数据分别存储于不同的中转节点中。通过上述技术方案,使得待迁移数据的数据量不再受一个中转节点的可用存储空间大小,即使待迁移数据的数据量较大,也可以通过增加中转节点的数量,使得所有的待迁移数据能够全部存储于中转节点中,保证一次数据迁移过程可以迁移所有的待迁移数据。
示例性的,当待迁移数据的数据量为10G时,且每个中转节点的可用存储空间均小于10G,可以采用多个中转节点。在一种可能的实施方式中,当采用多个中转节点时,可以优先采用更少的中转节点,同时优先选用组合后的总的存储空间更接近待迁移数据的数据量的中转节点。例如,当第一中转节点的可用存储空间为4G;第二中转节点的可用存储空间为3G;第三中转节点的可用存储空间为5G;第四中转节点的可用存储空间为6G时。可以确定第四中转节点和第一中转节点用于接收待迁移数据。此外,第一中转节点、第二中转节点、第三中转节点同时采用时,所有中转节点的总的可用存储空间为12G;第三中转节点、第四中转节点同时采用时,所有中转节点的总的可用存储空间为11G。由于待迁移数据的数据量为10G,并且为了节约资源,选用第一中转节点、第四中转节点接收待迁移数据,使得采用的中转节点的数量更少,并且总的可用存储空间更接近待迁移数据的数据量。
在一种可能的实施方式中,每个中转节点上可运行的Spark Executor个数根据该中转节点的可用存储空间大小确定。
不同的中转节点的可用存储空间可能不同,当中转节点的可用存储空间更大时,可以运行更多的Spark Executor。由于每个Spark Executor均关联至少一个Segment,且每个Spark Executor分别对应中转节点中的部分可用存储空间,因此,该Spark Executor所对应的可用存储空间不能过小,使得一个Segment需要关联多个Spark Executor,造成该Segment中的待迁移数据在中转节点中的过于分散。例如,当待迁移数据的数据量为10G,且分别存储于四个Segment中,各Segment中存储的待迁移数据的数据量分别为3G、2.5G、2.5G、2G。且确定了两个中转节点,其中第一中转节点的可用存储空间为7G,第二中转节点的可用存储空间为3G时,第一中转节点中运行的Spark Executor数量可以为3,且三个Spark Executor分别对应2.5G、2.5G、2G的可用存储空间;第二中转节点中转运行的SparkExecutor的数量可以为1。
通过上述的技术方案,可以使中转节点的每个Spark Executor所对应的可用存储空间,和与该Spark Executor关联的Segment中存储的待迁移数据的数据量相当,减少每个Spark Executor均关联多个Segment,以使通过每个Spark Executor要分别接收多个Segment传输的待迁移数据,造成数据迁移效率较低的现象。同时减少多个Spark Executor关联一个Segment,以使Segment传输的待迁移数据需要在多个Spark Executor之间进行分配,造成待迁移数据在中转节点中存储位置分散的情况。
在一种可能的实施方式中,数据迁移指令中具体包括待迁移数据的数据量以及与需进行数据迁移的各Segment分别对应的待迁移数据的数据量;
相应的,根据待迁移数据的数据量以及各中转节点的可用存储空间大小,确定至少两个中转节点;
根据各Segment分别对应的待迁移数据的数据量大小以及至少两个中转节点中的每个中转节点的可用存储空间,确定各中转节点上运行的Spark Executor的个数以及每个Spark Executor所关联的Segment。
需进行数据迁移的各Segment分别对应的待迁移数据的数据量,是指待迁移数据分别存储于那个Segment中,并且分别存储在这些Segment中的数据量的大小。例如,Greenplum中包含10个Segment,然而待迁移数据可以只存储于5个Segment中,分别为Segment 1、Segment 2、Segment 3、Segment 4、Segment 5。且待迁移数据的数据量可以为10G,且该5个Segment中对应的待迁移数据的数据量分别为:Segment 1-2G、Segment 2-2G、Segment 3-1.5G、Segment 4-2.5G、Segment 5-2G。则数据迁移指令中包括的信息有:待迁移数据的数据量为10G;5个Segment中对应的待迁移数据的数据量分别为:Segment 1-2G、Segment 2-2G、Segment 3-1.5G、Segment 4-2.5G、Segment 5-2G。
Master中存储有元数据,包含各数据在Segment中的存储位置。当Master在接收数据迁移任务请求后,能够获取得到待迁移数据的数据类型,并确定待迁移数据分别存储于那个Segment中,以及待迁移数据分别存储于这些Segment中的数据量的大小。并且Master可以将上述的待迁移数据的数据量和需进行数据迁移的各Segment分别对应的待迁移数据的数据量发送至中转节点,且上述的信息分别包含在数据迁移指令中。数据迁移指令即Master向中转节点发送的有关待迁移数据的上述信息。
当已知需进行数据迁移的各Segment分别对应的待迁移数据的数据量后,可以根据各Segment分别对应的待迁移数据的数据量大小、中转节点存储空间、中转节点中运行的Spark Executor的数量确定Segment与那个中转节点中的那个Spark Executor进行关联。以使各Segment分别能够与该Segment中存储的待迁移数据的数据量相当的SparkExecutor进行关联,能够使中转节点的可用存储空间合理分配,并保证数据迁移的高效进行。
示例性的,待迁移数据的数据量为10G,且分别存储于四个Segment中,各Segment中存储的待迁移数据的数据量分别为3G、2.5G、2.5G、2G。且确定了两个中转节点,其中第一中转节点的可用存储空间为7.5G,第二中转节点的可用存储空间为3G时,第一中转节点中运行的Spark Executor数量可以为3,且三个Spark Executor分别对应2.5G、2.5G、2.5G的可用存储空间;第二中转节点中转运行的Spark Executor的数量可以为1。则可以将第一中转节点中运行的Spark Executor分别与存储有2.5G、2.5G、2G待迁移数据的Segment进行关联;将第二中转节点中运行的Spark Executor与存储有3G待迁移数据的Segment进行关联。
在一种可能的实施方式中,每个中转节点中运行的Spark Executor数量可以根据该中转节点的可用存储空间能够存储的待迁移数据分别分布于Segment的个数确定。例如,待迁移数据的数据量为10G,且分别存储于四个Segment中,各Segment中存储的待迁移数据的数据量分别为3G、2.5G、2.5G、2G。某中转节点的可用存储空间为5G,则该中转节点可以存储两个存储有2.5G待迁移数据的Segment中的待迁移数据。因此该中转节点的SparkExecutor数量可以设定为2个,且分别与存储有2.5G待迁移数据的Segment进行关联。
S403、向Master发送可使用的Spark Executor的通知信息。
应理解,S403的具体实现方式与图3中的S303类似,此处不做赘述。
S404、通过所运行的各Spark Executor中的Gpfdist,分别接收与该SparkExecutor关联的Segment传输而来的待迁移数据,并存储待迁移数据,以使分布式文件存储系统HDFS通过各Spark Executor获取待迁移数据。
应理解,S404的具体实现方式与图3中的S304类似,此处不做赘述。
S405、通过HDFS的客户端程序将待迁移数据写入HDFS中。
HDFS的客户端程序能够直接向HDFS发送数据写入请求,或接收HDFS发送的数据读取请求。且每个Spark Executor中均包括HDFS的客户端程序。因此,能够通过各HDFS的客户端程序与HDFS的交互,实现HDFS通过Spark Executor与中转节点之间进行交互,以使HDFS能够并行从中转节点获取待迁移数据,提高数据迁移效率。
一种可能的实施方式中,通过HDFS的客户端程序将待迁移数据写入HDFS中,具体包括:
若已存储的待迁移数据的数据量大于存储阈值,则通过HDFS的客户端程序将已存储的待迁移数据写入HDFS中。
已存储的待迁移数据的数据量为通过各Spark Executor存储于中转节点中的待迁移数据的数据量。例如,Spark Executor 001与Segment 01关联,且Spark Executor 001已经接收了Segment 01发送的500MB的待迁移数据,则此时已存储的待迁移数据的数据量为500MB。存储阈值为可以设定的任意大于零的值,例如,可以为500、250、100等,且该存储阈值的单位可以为MB、G等。
若已存储的待迁移数据的数据量大于存储阈值,则将已存储的待迁移数据写入HDFS中。例如,存储阈值为500MB,则当已存储的待迁移数据的数据量大于500MB时,则将该已存储的待迁移数据写入HDFS中。通过上述的技术方案,能够减少中转节点因存储空间占用过多,使得该中转节点崩溃的现象。并且,当现有所有的中转节点的可用存储空间不大于待迁移数据的数据量时,也能够一次将所有的待迁移数据迁移至HDFS中。例如,当四个中转节点的总的可用存储空间为15G时,待迁移数据的数据量为16G,则通过上述的方案,也能够一次将所有的待迁移数据迁移至HDFS中,并且还能够避免某一中转节点中可用存储空间被完全占用的情况。并且,Segment向中转节点传输数据的过程、中转节点向HDFS写入数据的过程可以同时进行。
另一种可能的实施方式中,通过HDFS的客户端程序将待迁移数据写入HDFS中,具体包括:
根据待迁移数据的存储先后顺序,按照先进先出的原则,通过HDFS的客户端程序将待迁移数据写入HDFS中。
先进先出的原则指先存储于中转节点中的数据则先写入HDFS中,后存储于中转节点的数据则后写入HDFS中。由于待迁移数据是被分段进行传输的,如果该数据的各段数据的先后顺序被打乱,则写入HDFS中的待迁移数据的信息可能会发生错乱。示例性的,待迁移数据中包括:张三的身高为170cm。该数据可能是分为两个字段:“张三的身高”和“为170cm”,该两个字段分别向中转节点传输,且“张三的身高”先写入中转节点,“为170cm”后写入中转节点。则该中转节点向HDFS写入数据时,同样先写入“张三的身高”,后写入“为170cm”。如果先写入“为170cm”,再写入“张三的身高”,则会导致HDFS中的数据信息错乱,难以被理解,影响后续对于该数据的处理与分析。
又一种可能的实施方式中,存储待迁移数据之后,通过每个Spark Executor中还包含的HDFS的客户端程序,并行接收HDFS发送的数据读取请求,并通过HDFS的客户端程序将待迁移数据写入HDFS中。
数据读取请求为使中转节点向HDFS中写入数据的请求。HDFS的客户端程序能够接收HDFS发送的数据读取请求,并且能够向HDFS发送数据写入请求。当HDFS的客户端程序接收数据读取请求后,中转节点中运行的Spark Executor通过HDFS中的客户端程序向HDFS发送数据写入请求,然后Spark Executor将中转节点中的存储的待迁移数据写入HDFS中的数据存储服务器中,实现通过Spark Executor并行的将中转节点中的数据写入HDFS中,提高数据迁移效率。
再一种可能的实施方式中,在中转节点中设置待迁移数据类型,并将包含待迁移数据类型的请求发送至Master。Master可以根据包含待迁移数据类型的请求建立Greenplum临时表,该Greenplum临时表中记录了中转节点可以接收的待迁移数据的字段。Master可以将该Greenplum临时表发送给各Segment,以使Segment能够将符合Greenplum临时表中记录字段的待迁移数据传输至中转节点。
在上述任一实施例的基础上,通过几个具体示例对本申请实施例所示的技术方案进行详细说明。
图5为本申请实施例提供的数据迁移处理方法的过程示意图一。如图5所示,该数据迁移过程中,根据待迁移数据的数据量确定的中转节点的个数为1,Spark Executor的个数为3。
数据迁移过程可以分为两个过程:待迁移数据由Greenplum向中转节点的传输过程;中转节点向HDFS写入数据的过程。
在待迁移数据由Greenplum向中转节点传输之前,根据数据迁移指令确定此次待迁移数据的数据量为9.8G。然后确定一个可用存储空间为10G的服务器作为中转节点,由于该中转节点的可用存储空间大于待迁移数据的数据量,因此中转节点的个数为1。然后确定该中转节点中运行的Spark Executor的个数。待迁移数据的数据量为9.8G,可以设定SparkExecutor的个数为3。Spark Executor的个数影响数据迁移的效率,因此随着待迁移数据的数据量的增大,Spark Executor可以适当增多。该3个Spark Executor分别为SparkExecutor 1、Spark Executor 2、Spark Executor 3,将该3个Spark Executor分别与Greenplum中的Segment进行关联。存储待迁移数据的Segment分别为Segment 1、Segment2、Segment 3、Segment 4,将Spark Executor 1与Segment 1进行关联;Spark Executor 2与Segment 2进行关联;Spark Executor 3与Segment 3进行关联;未关联的Segment 4可以与Spark Executor 3进行关联。
待迁移数据由Greenplum向中转节点的传输过程中,中转节点通过SparkExecutor 1接收Segment 1传输的迁移数据;通过Spark Executor 2接收Segment 2传输的待迁移数据;通过Spark Executor 3接收Segment 3、Segment 4传输的待迁移数据,并将待迁移数据均存储于该中转节点中。中转节点向HDFS写入数据的过程,是通过各SparkExecutor中的HDFS的客户端程序。该中转节点分别通过Spark Executor 1、SparkExecutor 2、Spark Executor 3中的客户端程序向HDFS写入数据。
图6为本申请实施例提供的数据迁移处理方法的过程示意图二。如图6所示,该数据迁移过程中,根据待迁移数据的数据量确定的中转节点的个数为2,Spark Executor的个数为3。
待迁移数据由Greenplum向中转节点的传输过程是Greenplum中的Segment向中转节点传输待迁移数据的过程。Segment向中转节点传输待迁移数据的过程,首先要确定中转节点的个数、每个中转节点分别运行Spark Executor的数量、每个Spark Executor分别与那个Segment进行关联。在该数据迁移过程中,待迁移数据的数据量为9.8G,每个中转节点的可用存储空间均小于9.8G,因此需要增多中转节点的数量。确定可用存储空间为7G的第一中转节点和可用存储空间为3G的第二中转节点用于接收Segment传输的待迁移数据。由于第一中转节点的可用存储空间约为第二中转节点的两倍,且待迁移数据的数据量为9.8G,即第二中转节点约需接收3G待迁移数据,第一中转节点约需接收7G待迁移数据。因此,可以在第二中转节点中运行一个Spark Executor,即Spark Executor 3;第一中转节点中运行两个Spark Executor,Spark Executor 1和Spark Executor 2。且在Greenplum中存储待迁移数据的Segment分别为Segment 1、Segment 2、Segment 3、Segment 4,则将其中两个Segment关联同一个Spark Executor。可以将Spark Executor 1关联Segment 1和Segment 2;Spark Executor 2关联Segment 3;Spark Executor 3关联Segment 4。
待迁移数据由Greenplum向中转节点的传输过程中,第一中转节点通过SparkExecutor 1接收Segment 1和Segment 2传输的待迁移数据;通过Spark Executor 2接收Segment 3传输的待迁移数据。第二中转节点通过Spark Executor 3接收Segment 4传输的待迁移数据。然后第一中转节点分别通过Spark Executor 1和Spark Executor 2中的HDFS的客户端程序向HDFS写入待迁移数据;第二中转节点通过Spark Executor 3中的HDFS的客户端程序向HDFS写入待迁移数据。
图7为本申请实施例提供的数据迁移处理方法的过程示意图三。如图6所示,该数据迁移过程中,根据待迁移数据的数据量确定的中转节点的个数为2,Spark Executor的个数为4。
通过数据迁移指令已知待迁移数据的数据量为9.8G,且待迁移数据分别存储于Segment 1、Segment 2、Segment 3、Segment 4中,在该四个Segment中的数据量分别为Segment 1-2.5G、Segment 2-3G、Segment 3-2.8G、Segment 4-1.5G。确定第一中转节点、第二中转节点用于接收Segment传输的待迁移数据。第一中转节点的可用存储空间为9G、第二中转节点的可用存储空间为2G,使得第一中转节点可以存储Segment 1、Segment 2、Segment 3中传输的待迁移数据,第二中转节点可以接收Segment 4传输的迁移数据。因此,确定第一中转节点中运行的Spark Executor的个数为3,第二中转节点中运行的SparkExecutor的个数为1。并将第一中转节点中运行的Spark Executor 1、Spark Executor 2、Spark Executor 3分别与Segment 1、Segment 2、Segment 3进行关联;第二中转节点中运行的Spark Executor 4与Segment 4进行关联。
待迁移数据由Greenplum向中转节点的传输过程中,第一中转节点通过SparkExecutor 1接收Segment 1传输的迁移数据;通过Spark Executor 2接收Segment 2传输的待迁移数据;通过Spark Executor 3接收Segment 3传输的待迁移数据;第二中转节点通过Spark Executor 4接收Segment 4传输的待迁移数据。然后第一中转节点分别通过SparkExecutor 1、Spark Executor 2、Spark Executor 3中的HDFS的客户端程序将待迁移数据写入HDFS中;第二中转节点通过Spark Executor 4中的HDFS的客户端程序向HDFS写入待迁移数据。
图8为本申请实施例提供的数据迁移处理装置的结构示意图,如图8所示,该装置包括:第一接收模块801、确定模块802、通知模块803、第二接收模块804。
第一接收模块,用于接收中心数据库Greenplum中元数据服务器Master发送的数据迁移指令,数据迁移指令中包括待迁移数据的数据量大小;
确定模块,用于根据待迁移数据的数据量大小确定所需使用的中转节点以及该中转节点上运行的数据执行节点Spark Executor的个数,并将每个Spark Executor关联至少一个Segment,每个Spark Executor中包含并行文件服务工具Gpfdist,每个SparkExecutor关联Greenplum中的至少一个存储节点Segment;
通知模块,用于向Master发送可使用的Spark Executor的通知信息;
第二接收模块,用于通过所运行的各Spark Executor中的Gpfdist,分别接收与该Spark Executor关联的Segment传输而来的待迁移数据,并存储待迁移数据,以使分布式文件存储系统HDFS通过各Spark Executor获取待迁移数据。
可选的,确定模块具体用于,根据待迁移数据的数据量以及各中转节点的可用存储空间大小,确定一个中转节点,该中转节点上运行至少两个Spark Executor。
可选的,确定模块还具体用于,根据待迁移数据的数据量以及各中转节点的可用存储空间大小,确定至少两个中转节点,每个中转节点上运行至少一个Spark Executor。
可选的,确定模块还具体用于,根据中转节点的可用存储空间大小确定该中转节点上可运行的Spark Executor个数。
可选的,数据迁移指令中具体包括待迁移数据的数据量以及与需进行数据迁移的各Segment分别对应的待迁移数据的数据量;
确定模块还具体用于,根据待迁移数据的数据量以及各中转节点的可用存储空间大小,确定至少两个中转节点;
根据各Segment分别对应的待迁移数据的数据量大小以及至少两个中转节点中的每个中转节点的可用存储空间,确定各中转节点上运行的Spark Executor的个数以及每个Spark Executor所关联的Segment。
可选的,每个Spark Executor中还包含HDFS的客户端程序;
上述的装置还包括:写入模块,用于通过HDFS的客户端程序将待迁移数据写入HDFS中。
可选的,写入模块具体用于,若已存储的待迁移数据的数据量大于存储阈值,则通过HDFS的客户端程序将已存储的待迁移数据写入HDFS中。
可选的,写入模块还具体用于,根据待迁移数据的存储先后顺序,按照先进先出的原则,通过HDFS的客户端程序将待迁移数据写入HDFS中。
可选的,每个Spark Executor中还包含HDFS的客户端程序;
上述的装置还包括,第三接收模块,用于通过每个Spark Executor中还包含的HDFS的客户端程序,并行接收HDFS发送的数据读取请求,并通过HDFS的客户端程序将待迁移数据写入HDFS中。
本实施例提供的数据迁移处理装置,可用于执行上述的方法实施例,其实现方式和技术效果类似,本实施例此处不再赘述。
图9为本申请实施例提供的数据迁移处理系统的架构示意图二,如图9所示,该系统包括:Greenplum 901、中转节点902;
Greenplum中包括Master和至少两个Segment;
中转节点用于执行上述的数据迁移处理方法实施例,其实现方式和技术效果类似,本实施例此处不再赘述。
可选的,中转节点的个数为一个,该中转节点上运行有至少两个Spark Executor。
如图5所示,中转节点的数量为一个,且该中转节点上运行有3个Spark Executor,每个Spark Executor均关联至少一个Segment。该中转节点的可用存储空间可以容纳所有的待迁移数据,同时为了提高数据迁移效率,可以根据待迁移数据的数据量、存储待迁移数据的Segment的数量确定Spark Executor的运行个数。
可选的,中转节点的个数为至少两个,每个中转节点上运行有至少一个SparkExecutor。
如图6所示,当一个中转节点的可用存储空间小于待迁移数据的数据量时,可以增加中转节点的数量。图6所示的方案中,采用两个中转节点,且每个中转节点上可以运行一个或者多个Spark Executor,每个Spark Executor均关联至少一个Segment。
图10为本申请实施例提供的另一种数据迁移处理系统的架构示意图二。在图9所示的实施例的基础上,请参见图10,该数据迁移处理系统90还可以包括:HDFS 903,用于通过各Spark Executor获取待迁移数据。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图11为本申请实施例提供的电子设备的硬件结构图,如图11所示,该数据迁移处理设备110包括:
至少一个处理器1101和存储器1102;
所述存储器1102存储计算机执行指令;
所述至少一个处理器1101执行所述存储器1102存储的计算机执行指令,使得所述至少一个处理器1101执行如上所述的数据迁移处理方法。
处理器1101的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
其中,处理器1101、存储器1102通过总线1103连接。
上述的电子设备可以为中转节点中的一个,也可以为中转节点之外的中控服务器设备,本实施例中对其不做具体限制。本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述的数据迁移处理方法。
本申请实施例还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行如上述的数据迁移处理方法。
在上述的实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述的方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称:ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于终端或服务器中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (16)
1.一种数据迁移处理方法,其特征在于,包括:
接收中心数据库Greenplum中元数据服务器Master发送的数据迁移指令,所述数据迁移指令中包括待迁移数据的数据量;
根据所述待迁移数据的数据量确定所需使用的中转节点以及该中转节点上运行的数据执行节点Spark Executor的个数,每个Spark Executor中包含并行文件服务工具Gpfdist,每个Spark Executor关联所述Greenplum中的至少一个存储节点Segment;
向所述Master发送可使用的Spark Executor的通知信息;
通过所运行的各Spark Executor中的Gpfdist,分别接收与该Spark Executor关联的Segment传输而来的待迁移数据,并存储所述待迁移数据,以使分布式文件存储系统HDFS通过各Spark Executor获取所述待迁移数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待迁移数据的数据量确定所需使用的中转节点以及该中转节点上运行的Spark Executor的个数,具体包括:
根据所述待迁移数据的数据量以及各中转节点的可用存储空间大小,确定一个中转节点,该中转节点上运行至少两个Spark Executor。
3.根据权利要求1所述的方法,其特征在于,所述根据所述待迁移数据的数据量确定所需使用的中转节点以及该中转节点上运行的Spark Executor的个数,具体包括:
根据所述待迁移数据的数据量以及各中转节点的可用存储空间大小,确定至少两个中转节点,每个中转节点上运行至少一个Spark Executor。
4.根据权利要求3所述的方法,其特征在于,每个中转节点上可运行的Spark Executor个数根据该中转节点的可用存储空间大小确定。
5.根据权利要求1所述的方法,其特征在于,所述数据迁移指令中具体包括待迁移数据的数据量以及与需进行数据迁移的各Segment分别对应的待迁移数据的数据量;
相应的,所述根据所述待迁移数据的数据量确定所需使用的中转节点以及该中转节点上运行的Spark Executor的个数,具体包括:
根据待迁移数据的数据量以及各中转节点的可用存储空间大小,确定至少两个中转节点;
根据各Segment分别对应的待迁移数据的数据量大小以及所述至少两个中转节点中的每个中转节点的可用存储空间,确定各中转节点上运行的Spark Executor的个数以及每个Spark Executor所关联的Segment。
6.根据权利要求1-5任一所述的方法,其特征在于,每个Spark Executor中还包含HDFS的客户端程序;
所述存储所述待迁移数据之后,还包括:
通过HDFS的客户端程序将所述待迁移数据写入HDFS中。
7.根据权利要求6所述的方法,其特征在于,所述通过HDFS的客户端程序将所述待迁移数据写入HDFS中,具体包括:
若已存储的待迁移数据的数据量大于存储阈值,则通过HDFS的客户端程序将所述已存储的待迁移数据写入HDFS中。
8.根据权利要求6所述的方法,其特征在于,所述通过HDFS的客户端程序将所述待迁移数据写入HDFS中,具体包括:
根据待迁移数据的存储先后顺序,按照先进先出的原则,通过HDFS的客户端程序将所述待迁移数据写入HDFS中。
9.根据权利要求1-5任一所述的方法,其特征在于,每个Spark Executor中还包含HDFS的客户端程序;
所述存储所述待迁移数据之后,还包括:
通过每个Spark Executor中还包含的HDFS的客户端程序,并行接收所述HDFS发送的数据读取请求,并通过HDFS的客户端程序将所述待迁移数据写入HDFS中。
10.一种数据迁移处理装置,其特征在于,包括:
第一接收模块,用于接收中心数据库Greenplum中元数据服务器Master发送的数据迁移指令,所述数据迁移指令中包括待迁移数据的数据量大小;
确定模块,用于根据所述待迁移数据的数据量确定所需使用的中转节点以及该中转节点上运行的数据执行节点Spark Executor的个数,每个Spark Executor中包含并行文件服务工具Gpfdist,每个Spark Executor关联所述Greenplum中的至少一个存储节点Segment;
通知模块,用于向所述Master发送可使用的Spark Executor的通知信息;
第二接收模块,用于通过所运行的各Spark Executor中的Gpfdist,分别接收与该Spark Executor关联的Segment传输而来的待迁移数据,并存储所述待迁移数据,以使分布式文件存储系统HDFS通过各Spark Executor获取所述待迁移数据。
11.一种数据迁移处理系统,其特征在于,包括:
中心数据库Greenplum和中转节点;
所述Greenplum中包括元数据服务器Master和至少两个存储节点Segment;
所述中转节点用于执行如权利要求1-9任一项所述的数据迁移处理方法。
12.根据权利要求11所述的系统,其特征在于,所述中转节点的个数为一个,所述中转节点上运行有至少两个Spark Executor。
13.根据权利要求11所述的系统,其特征在于,所述中转节点的个数为至少两个,每个中转节点上运行有至少一个Spark Executor。
14.根据权利要求11-13任一所述的系统,其特征在于,还包括:
HDFS,用于通过各Spark Executor获取所述待迁移数据。
15.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-9任一项所述的数据迁移处理方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-9任一项所述的数据迁移处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211022658.3A CN115103020B (zh) | 2022-08-25 | 2022-08-25 | 数据迁移处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211022658.3A CN115103020B (zh) | 2022-08-25 | 2022-08-25 | 数据迁移处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115103020A CN115103020A (zh) | 2022-09-23 |
CN115103020B true CN115103020B (zh) | 2022-11-15 |
Family
ID=83300040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211022658.3A Active CN115103020B (zh) | 2022-08-25 | 2022-08-25 | 数据迁移处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115103020B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243527A (zh) * | 2013-06-20 | 2014-12-24 | 华为技术有限公司 | 数据同步方法、数据同步装置及分布式系统 |
CN104731888A (zh) * | 2015-03-12 | 2015-06-24 | 北京奇虎科技有限公司 | 一种数据迁移的方法、装置和系统 |
CN107391629A (zh) * | 2017-06-30 | 2017-11-24 | 北京奇虎科技有限公司 | 集群间数据迁移方法、系统、服务器及计算机存储介质 |
CN110971647A (zh) * | 2018-09-30 | 2020-04-07 | 南京工程学院 | 一种大数据系统的节点迁移方法 |
CN112118316A (zh) * | 2020-09-18 | 2020-12-22 | 苏州浪潮智能科技有限公司 | 一种分布式存储数据迁移方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10965742B2 (en) * | 2012-02-13 | 2021-03-30 | SkyKick, Inc. | Migration project automation, e.g., automated selling, planning, migration and configuration of email systems |
US9305010B1 (en) * | 2013-12-30 | 2016-04-05 | Emc Corporation | Virtual file system providing interface between analytics platform and physical file system |
CN114780252B (zh) * | 2022-06-15 | 2022-11-18 | 阿里云计算有限公司 | 数据仓库系统的资源管理方法及装置 |
-
2022
- 2022-08-25 CN CN202211022658.3A patent/CN115103020B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243527A (zh) * | 2013-06-20 | 2014-12-24 | 华为技术有限公司 | 数据同步方法、数据同步装置及分布式系统 |
CN104731888A (zh) * | 2015-03-12 | 2015-06-24 | 北京奇虎科技有限公司 | 一种数据迁移的方法、装置和系统 |
CN107391629A (zh) * | 2017-06-30 | 2017-11-24 | 北京奇虎科技有限公司 | 集群间数据迁移方法、系统、服务器及计算机存储介质 |
CN110971647A (zh) * | 2018-09-30 | 2020-04-07 | 南京工程学院 | 一种大数据系统的节点迁移方法 |
CN112118316A (zh) * | 2020-09-18 | 2020-12-22 | 苏州浪潮智能科技有限公司 | 一种分布式存储数据迁移方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115103020A (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110188110B (zh) | 一种构建分布式锁的方法及装置 | |
US9946721B1 (en) | Systems and methods for managing a network by generating files in a virtual file system | |
US20170085653A1 (en) | Method, device and system for message distribution | |
CN111309805B (zh) | 数据库的数据读写方法及装置 | |
CN115756955A (zh) | 一种数据备份、数据恢复的方法、装置及计算机设备 | |
CN116016653A (zh) | 区块链的信息推送方法、装置、电子设备和存储介质 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN109144403B (zh) | 一种用于云盘模式切换的方法与设备 | |
CN117492661A (zh) | 数据写入方法、介质、装置和计算设备 | |
EP4006725A1 (en) | Virtual machine migration processing and strategy generation method, apparatus and device, and storage medium | |
CN108241616B (zh) | 消息推送方法和装置 | |
CN112631994A (zh) | 数据迁移方法及系统 | |
CN115103020B (zh) | 数据迁移处理方法和装置 | |
CN117032570A (zh) | 数据存储方法、数据读取方法、系统、设备和存储介质 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN108920278B (zh) | 资源分配方法及装置 | |
CN116467085A (zh) | 任务处理方法、系统、电子设备及存储介质 | |
CN109558249B (zh) | 一种并发操作的控制方法及装置 | |
CN115686746A (zh) | 访问方法、任务处理方法、计算设备及计算机存储介质 | |
CN110019031B (zh) | 一种文件创建方法及文件管理装置 | |
CN109408485B (zh) | 一种分布式锁实现方法和系统 | |
CN112764897A (zh) | 任务请求的处理方法、装置、系统及计算机可读存储介质 | |
CN112783843A (zh) | 数据读取方法、装置及电子设备 | |
CN111857548A (zh) | 数据读取方法、装置及系统 | |
CN111399753A (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 |