分布式数据加载调度方法与系统的制作方法

文档序号:7809118阅读:388来源:国知局
专利名称:分布式数据加载调度方法与系统的制作方法
技术领域
本发明涉及计算机领域中分布式系统,具体地,涉及分布式数据加载调度的方法及系统。
背景技术
在现有的分布式数据加载系统中,其数据加载方式主要包括:随机配置:如图1所示,源数据节点和存储节点一对一配置,在进行数据加载之前,随机选择一个源数据节点和一个存储节点的组合,在数据加载开始后,各个源数据节点与各个存储节点之间的连接关系就是静态不变的。高可靠性配置:如图2所示,在进行数据加载之前,为每一个源数据节点分配两个或多个存储节点,同时发送数据,一个存储节点可以接收多个源数据节点的数据;在数据加载开始后,各个源数据节点与各个存储节点之间的连接关系就是静态不变的。该方式可以提高系统可靠性,避免因存储节点损坏而使得源数据节点的数据加载不成功。现有的上述配置方式,首先,采用静态的配置方式,一旦配置完成就无法进行动态修改;其次,系统利用率低,无法充分利用系统资源,导致系统的加载效率较低。

发明内容
本发明的目的是针对现有技术中分布式系统数据加载效率较低的缺陷,提出一种分布式数据加载调度的方法及系统。为实现上述目的,根据本发明的一个方面,提供了 一种分布式数据加载调度方法。根据本发明实施例的分布式数据加载调度方法,包括:控制节点实时收集源加载节点和目的加载节点的运行状态信息;控制节点根据运行状态信息,生成配置更新信息下发给源加载节点和目的加载节
占.
其中,控制节点位于分布式系统中。在上述技术方案中,如果分布式系统中还包括控制节点集群,则方法还包括:控制节点将配置更新信息上报给控制节点集群,经过控制节点集群确认通过后,由控制节点将配置更新信息下发给源加载节点和目的加载节点。在上述技术方案中,方法还包括:在分布式系统的数据源侧部署源加载节点,该源加载节点与数据源中的源数据节点相耦合,获取源数据节点中的数据,并将该数据进行封装处理;在分布式系统的存储侧部署目的加载节点,该目的加载节点与存储侧的存储节点相稱合,接收来自源加载节点的数据,导入到存储节点内。在上述技术方案中,控制节点根据运行状态信息,生成配置更新信息的步骤包括:控制节点根据运行状态信息,动态的对每个源加载节点和目的加载节点之间的网络拓扑进行配置更新,生成配置更新信息。在上述技术方案中,控制节点根据运行状态信息,动态的对每个源加载节点和目的加载节点之间的网络拓扑进行配置更新的步骤包括:控制节点根据负载情况动态的对每个源加载节点和每个目的加载节点之间的网络拓扑进行配置更新;或者,控制节点根据节点健康情况动态的对每个源加载节点和每个目的加载节点之间的网络拓扑进行配置更新。在上述技术方案中,控制节点根据负载情况动态的对每个源加载节点和每个目的加载节点之间的网络拓扑进行配置更新具体包括:在海量数据加载情况下,在控制节点配置的网络拓扑下,源加载节点将自身的数据按数据量大小分成多份,并将该数据按份分配给多个目的加载节点处理。在上述技术方案中,控制节点根据节点健康情况动态的对每个源加载节点和每个目的加载节点之间的网络拓扑进行配置更新具体包括:在源加载节点增加的情况下,在控制节点配置的网络拓扑下,源加载节点将增加的任务均衡的分配给目的加载节点;在目的加载节点增加或目的加载节点的处理任务不均时,在控制节点配置的网络拓扑下,源加载节点将自身中未处理的任务重新进行分配。在上述技术方案中,控制节点根据节点健康情况动态的对每个源加载节点和每个目的加载节点之间的网络拓扑进行配置更新具体还包括:在目的加载节点出现失效的情况下,在控制节点配置的网络下,源加载节点将由该失效目的加载节点负责处理的未完成任务分配给其它空闲或任务负担较轻的目的加载节点。为实现上述目的,根据本发明的另一个方面,提供了分布式数据加载调度系统。根据本发明实施例的分布式数据加载调度系统,包括:控制节点,位于分布式系统中,用于实时收集源加载节点和目的加载节点的运行状态信息,根据运行状态信息,生成配置更新信息下发给源加载节点和目的加载节点。在上述技术方案中,分布式系统中还包括控制节点集群:控制节点集群,用于接收控制节点上报的配置更新信息,并对配置更新信息进行确认。在上述技术方案中,系统包括源加载节点和目的加载节点,源加载节点与分布式系统的数据源中的源数据节点相耦合,目的加载节点与分布式系统的存储侧的存储节点相率禹合:源加载节点,用于获取源数据节点中的数据,并将该数据进行封装处理;目的加载节点,用于接收来自源加载节点的数据,导入到存储节点内。在上述技术方案中,控制节点包括:信息收集模块,用于实时收集源加载节点和目的加载节点的运行状态信息;配置更新模块,用于根据运行状态信息,动态的对每个源加载节点和目的加载节点之间的网络拓扑进行配置更新,生成配置更新信息;信息下发模块,用于将生成的配置更新信息下发给源加载节点和目的加载节点。
在上述技术方案中,源加载节点包括:
数据分割模块,用于在海量数据加载情况下,在控制节点配置的网络拓扑下,将源加载节点的数据按数据量大小分成多份;
任务分配模块,用于将该数据按份分配给多个目的加载节点处理。
在上述技术方案中,源加载节点还包括:
任务分配模块,用于在源加载节点增加的情况下,在控制节点配置的网络拓扑下,将增加的任务均衡的分配给目的加载节点,在目的加载节点增加或目的加载节点的处理任务不均时,在控制节点配置的网络拓扑下,将源加载节点中未处理的任务重新进行分配。
在上述技术方案中,源加载节点还包括:
任务分配模块,用于在目的加载节点出现失效的情况下,在控制节点配置的网络拓扑下,将由该失效目的加载节点负责处理的未完成任务分配给其它空闲或任务负担较轻的目的加载节点。
本发明的分布式数据加载调度方法和系统,采用动态拓扑生成和自动调度方法,由于采用灵活的配置更新策略,保证了系统的负载均衡和高可靠性,提高了系统吞吐率,提高了数据加载的效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为现有技术中随机配置的数据加载方式的结构示意图2为现有技术中高可靠性配置的数据加载方式的结构示意图3为本发明分布式数据加载调度系统的结构示意图4为根据本发明负载均衡配置举例的示意图5为根据本发明高吞吐率配置举例的示意图6为根据本发明分布式数据加载调度方法实施例一的流程示意图7为根据本发明分布式数据加载调度方法实施例二的流程示意图8为根据本发明分布式数据加载调度系统的结构示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
如图3所示,本发明的分布式数据加载调度系统包括:
一个以上Source节点(源加载节点):部署在数据源侧,每个源加载节点与分布式数据源(可以是分布式数据库或者分布式文件系统)中的一个源数据节点相耦合,并用于获取该源数据节点中的数据,将该数据进行封装,通过网络发送给对应的一个或多个目的加载节点;一个以上Dest节点(目的加载节点):部署在存储侧,每个目的加载节点与分布式存储系统(可以是分布式数据库或者分布式文件系统)中的一个存储节点相耦合,并用于接收对应的源加载节点所发送的数据,将该数据导入到存储节点中;其中,源加载节点和目的加载节点之间的数据传输是通过网络进行,数据源侧的分布式数据源和存储侧的分布式存储系统可以分别部署在不同的网络、机房或地域中。本系统还包括Master节点(控制节点):控制所有Source节点和Dest节点的配置信息,并将配置信息通知给所有Source节点和Dest节点,配置信息决定分布式数据加载调度系统的拓扑结构,即哪个Source节点的数据发送给哪个Dest节点;控制节点动态的对每个源加载节点和目的加载节点之间的网络拓扑进行配置更新,配置更新策略包括:根据负载情况动态的对每个源加载节点和每个目的加载节点之间的网络拓扑进行配置;或者,根据节点健康情况动态的对每个源加载节点和每个目的加载节点之间的网络拓扑进行配置;或者,根据负载情况和节点健康情况来动态的对每个源加载节点和每个目的加载节点之间的网络拓扑进行配置。配置更新举例:I)负载均衡配置:在海量数据加载的情况下,Source节点将自身的数据按数据量大小分成多份,由多个Dest节点按份接收处理,每个Dest节点也可以接收多个Source节点的数据;在本情形中,Master节点指示Source节点将按份分好的数据任务均衡的分配给Dest节点,保证了系统的负载均衡,避免了某些Source节点和Dest节点处理的数据量过大,成为系统性能的瓶颈;如果Master节点发现Source节点数量增加,Master节点将指示Source节点将增加的任务按照负载均衡原则分配给Dest节点;如果Master节点发现Dest节点数量增加或者Dest节点的处理任务不均时,Master节点将指示Source节点将自身未处理的任务重新进行分配,达到负载均衡,如图4所示。配置更新内容如下:(由控制节点进行配置)Sourcel destl、dest2、destMSource2 dest2。。。SourceN destl、destM2)高吞吐率配置:本配置方式可以与上述负载均衡配置中的各种情况配合使用,Master节点根据实时收集的Source节点和Dest节点状态,动态更新配置,自动调度Source节点和Dest节点。Source节点和Dest节点的运行状态信息包括:节点名、是否正常工作、数据传输
吞吐率等。如果Master节点发现某个Dest节点失效,可指示Source节点将失效Dest节点的未完成的任务重新分配给其它空闲或负担较轻的Dest节点,如图5所示。
配置信息修改为如下:
Sourcel destM、dest2
Source2 dest2、destM
。。。
SourceN dest2、destM
为了避免Master节点的单点故障,也为了应对Source节点和Dest节点规模增长导致的控制流瓶颈,系统支持多个Master节点形成Master节点集群,Master节点集群中的多个Master节点间保持数据一致性,以确保Master节点的备份。
本发明的分布式数据加载调度系统,还可以适配分布式数据源和分布式存储系统在存储格式(以什么方式存储,如序列化方式)、数据格式(数据内容的组织形式,如分隔符)等的不同,并进行转换。_9] 方法实施例
根据本发明实施例,提供了一种分布式数据加载调度方法,如图6所示,本实施例包括:
步骤102:根据系统需求,配置Source节点和Dest节点,以及配置分布式数据加载调度系统的网络拓扑结构的初始状态;
步骤104:Master节点实时收集Source节点和Dest节点的运行状态信息;
步骤106:Master节点根据收集到的Source节点和Dest节点的运行状态信息,生成配置更新信息,通知Source节点和Dest节点;
步骤108:Source节点和Dest节点按照配置更新信息继续完成数据加载任务,如果数据加载未完成,则转向步骤104,否则,结束加载。
根据本发明实施例,提供了另一种分布式数据加载调度方法,如图7所示,本实施例包括:
步骤202:根据系统需求,配置Source节点和Dest节点,以及配置分布式数据加载调度系统的网络拓扑结构的初始状态;
步骤204:Master节点实时收集Source节点和Dest节点的运行状态信息;
步骤206:Master节点根据收集到的Source节点和Dest节点的运行状态信息,生成配置更新信息上报给Master节点集群;
步骤208 =Master节点集群最终通过一个关于配置更新信息的一致性决策;
步骤210:Master节点通知Source节点和Dest节点配置更新信息;
步骤212 =Source节点和Dest节点按照配置更新信息继续完成数据加载任务,如果数据加载未完成,则转向步骤204,否则,结束加载。
需要说明的是,在图6和图7的实施例中,Master节点只能控制Source节点和Dest节点之间的网络拓扑结构。Master节点不能控制Source节点的任务分配,该任务分配包括:分布式系统新增了 Source节点,如何将新增Source节点部署在数据源侧的一个节点上,如何获取数据加载任务,Source节点如何将数据按数据大小分成多份,以及Dest节点如何部署在存储侧的一个节点上,等等。
本发明的分布式数据加载调度方法,采用动态拓扑生成和自动调度方法,由于采用灵活的配置更新策略,保证了系统的负载均衡和高可靠性,提高了系统吞吐率,提高了数据加载的效率。系统实施例根据本发明实施例,提供了 一种分布式数据加载调度系统。如图3和图8所示,本实施例包括:控制节点10,位于分布式系统中,用于实时收集源加载节点和目的加载节点的运行状态信息,根据所述运行状态信息,生成配置更新信息下发给源加载节点和目的加载节点。分布式系统中还包括控制节点集群:控制节点集群,用于接收控制节点10上报的配置更新信息,并对配置更新信息进行确认。系统包括源加载节点和目的加载节点,源加载节点与分布式系统的数据源中的源数据节点相耦合,目的加载节点与分布式系统的存储侧的存储节点相耦合:源加载节点20,用于获取源数据节点中的数据,并将该数据进行封装处理;目的加载节点,用于接收来自源加载节点20的数据,导入到存储节点内。控制节点10包括:信息收集模块11,用于实时收集源加载节点和目的加载节点的运行状态信息;配置更新模块12,用于根据运行状态信息,动态的对每个源加载节点和目的加载节点之间的网络拓扑进行配置更新,生成配置更新信息;信息下发模块13,用于将生成的配置更新信息下发给源加载节点和目的加载节点。源加载节点20包括:数据分割模块21,用于在海量数据加载情况下,在控制节点配置的网络拓扑下,将源加载节点的数据按数据量大小分成多份;任务分配模块22,用于将该数据按份分配给多个目的加载节点处理。源加载节点20还包括:任务分配模块22,还用于在源加载节点增加的情况下,在控制节点配置的网络拓扑下,将增加的任务均衡的分配给目的加载节点,在目的加载节点增加或目的加载节点的处理任务不均时,在控制节点配置的网络拓扑下,将源加载节点中未处理的任务重新进行分配。源加载节点20还包括:任务分配模块22,还用于在目的加载节点出现失效的情况下,在控制节点配置的网络拓扑下,将由该失效目的加载节点负责处理的未完成任务分配给其它空闲或任务负担较轻的目的加载节点。本发明的分布式数据加载调度系统,采用动态拓扑生成和自动调度方法,由于采用灵活的配置更新策略,保证了系统的负载均衡和高可靠性,提高了系统吞吐率,提高了数据加载的效率。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种分布式数据加载调度方法,其特征在于,包括: 控制节点实时收集源加载节点和目的加载节点的运行状态信息; 所述控制节点根据所述运行状态信息,生成配置更新信息下发给所述源加载节点和目的加载节点; 其中,所述控制节点位于分布式系统中。
2.根据权利要求1所述的方法,其特征在于,如果分布式系统中还包括控制节点集群,则方法还包括: 所述控制节点将所述配置更新信息上报给控制节点集群,经过所述控制节点集群确认通过后,由所述控制节点将所述配置更新信息下发给所述源加载节点和目的加载节点。
3.根据权利要求1所述的方法,其特征在于,还包括: 在分布式系统的数据源侧部署源加载节点,该源加载节点与数据源中的源数据节点相耦合,获取所述源数据节点中的数据,并将该数据进行封装处理; 在分布式系统的存储侧部署目的加载节点,该目的加载节点与存储侧的存储节点相耦合,接收来自所述源加载节点的数据,导入到所述存储节点内。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述控制节点根据运行状态信息,生成配置更新信息的步骤包括: 所述控制节点根据运行状态信息,动态的对每个源加载节点和目的加载节点之间的网络拓扑进行配置更新,生成配置更新信息。
5.根据权利要求4所述的方法,其特征在于,控制节点根据运行状态信息,动态的对每个源加载节点和目的加载节点之间的网络拓扑进行配置更新的步骤包括: 控制节点根据负载情况动态的对每个源加载节点和每个目的加载节点之间的网络拓扑进行配置更新;或者, 控制节点根据节点健康情况动态的对每个源加载节点和每个目的加载节点之间的网络拓扑进行配置更新。
6.根据权利要求5所述的方法,其特征在于,所述控制节点根据负载情况动态的对每个源加载节点和每个目的加载节点之间的网络拓扑进行配置更新具体包括: 在海量数据加载情况下,在所述控制节点配置的网络拓扑下,所述源加载节点将自身的数据按数据量大小分成多份,并将该数据按份分配给多个目的加载节点处理。
7.根据权利要求5所述的方法,其特征在于,所述控制节点根据节点健康情况动态的对每个源加载节点和每个目的加载节点之间的网络拓扑进行配置更新具体包括: 在所述源加载节点增加的情况下,在所述控制节点配置的网络拓扑下,所述源加载节点将增加的任务均衡的分配给所述目的加载节点; 在所述目的加载节点增加或所述目的加载节点的处理任务不均时,在所述控制节点配置的网络拓扑下,所述源加载节点将自身中未处理的任务重新进行分配; 在所述目的加载节点出现失效的情况下,在所述控制节点配置的网络拓扑下,所述源加载节点将由该失效目的加载节点负责处理的未完成任务分配给其它空闲或任务负担较轻的目的加载节点。
8.一种分布式数据加载调度系统,其特征在于,包括: 控制节点,位于分布式系统中,用于实时收集源加载节点和目的加载节点的运行状态信息,根据所述运行状态信息,生成配置更新信息下发给所述源加载节点和目的加载节点。
9.根据权利要求8所述的系统,其特征在于,分布式系统中还包括控制节点集群: 所述控制节点集群,用于接收所述控制节点上报的配置更新信息,并对所述配置更新信息进行确认。
10.根据权利要求8所述的系统,其特征在于,包括源加载节点和目的加载节点,所述源加载节点与分布式系统的数据源中的源数据节点相耦合,所述目的加载节点与分布式系统的存储侧的存储节点相耦合: 所述源加载节点,用于获取所述源数据节点中的数据,并将该数据进行封装处理;所述目的加载节点,用于接收来自所述源加载节点的数据,导入到所述存储节点内。
11.根据权利要求8-10中任意一项所述的系统,其特征在于,所述控制节点包括: 信息收集模块,用于实时收集源加载节点和目的加载节点的运行状态信息; 配置更新模块,用于根据运行状态信息,动态的对每个源加载节点和目的加载节点之间的网络拓扑进行配置更新,生成配置更新信息;信息下发模块,用于将生成的配置更新信息下发给所述源加载节点和目的加载节点。
12.根据权利要求11所述的系统,其特征在于,所述源加载节点包括: 数据分割模块,用于在海量数据加载情况下,在所述控制节点配置的网络拓扑下,将源加载节点的数据按数据量大小分成多份; 任务分配模块,用于将该数据按份分配给多个目的加载节点处理。
13.根据权利要求11所述的系统,其特征在于,所述源加载节点还包括: 任务分配模块,用于在所述源加载节点增加的情况下,在所述控制节点配置的网络拓扑下,将增加的任务均衡的分配给所述目的加载节点,在所述目的加载节点增加或所述目的加载节点的处理任务不均时,在所述控制节点配置的网络拓扑下,将所述源加载节点中未处理的任务重新进行分配, 在所述目的加载节点出现失效的情况下,在所述控制节点配置的网络拓扑下,将由该失效目的加载节点负责处理的未完成任务分配给其它空闲或任务负担较轻的目的加载节点。
全文摘要
本发明公开了一种分布式数据加载调度的方法及系统,其中,该方法包括控制节点实时收集源加载节点和目的加载节点的运行状态信息;控制节点根据运行状态信息,生成配置更新信息下发给源加载节点和目的加载节点;其中,控制节点位于分布式系统中。本发明的分布式数据加载调度方法和系统,采用动态拓扑生成和自动调度方法,由于采用灵活的配置更新策略,保证了系统的负载均衡和高可靠性,提高了系统吞吐率,提高了数据加载的效率。
文档编号H04L29/08GK103188161SQ201110453878
公开日2013年7月3日 申请日期2011年12月30日 优先权日2011年12月30日
发明者高丹, 钱岭, 齐骥, 郭磊涛, 周大 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1