一种分布式数据挖掘系统及方法与流程

文档序号:12278255阅读:528来源:国知局
一种分布式数据挖掘系统及方法与流程

本发明涉及数据挖掘技术领域,尤其涉及一种分布式数据挖掘系统及方法。



背景技术:

近年来,以大数据、云计算、移动互联网等为代表的新一代信息技术的兴起在全球范围内掀起了“第三次IT革命”。随着大数据时代的到来,如何进一步提升数据分析能力,深入挖掘数据的业务价值,近而带动产品创新、业务流程和管理体制的变革,实现真正“以数据说话”,成为一项新课题。数据挖掘的本质是从大量数据中挖掘出隐含的、对决策有潜在价值的关系、模式和趋势。由于涉及海量数据的计算,对实现系统的框架有较高要求。

目前主流的大数据挖掘系统是采用分布式的挖掘结构,即将一项大数据分析任务进行分解,然后由多台服务器并行计算,最后对分项结果进行汇总。例如以hadoop框架为主要代表的分布式系统基本架构被广泛应用。在hadoop框架中,JobTracker服务器承担总调度的重要角色,即接收用户终端提交的大数据分析作业,根据map/reduce算法实现任务的分解,然后根据运算服务器(TaskTracker)的忙闲程度将任务分发到空闲的运算服务器上。JobTracker服务器同时监控运算服务器(TaskTracker)上任务的执行情况,若任务执行有异常,则对任务进行重新分配。此框架存在一个很明显的缺陷,即单点故障的风险。作为主控节点的JobTracker服务器一旦出现故障则将导致整个hadoop框架的任务调度体系陷入瘫痪。具体表现为用户终端因作为服务入口的主控节点故障而无法完成任务的提交;运算服务器(TaskTracker)的执行过程得不到监控而造成执行失败任务得不到重新分配;同时运算服务器(TaskTracker)因失去了任务分配者而使资源处于闲置状态。



技术实现要素:

本发明的实施例提供一种分布式数据挖掘系统及方法,以解决当前作为主控节点的JobTracker服务器一旦出现故障则将导致整个hadoop框架的任务调度体系陷入瘫痪,无法完成任务调度和处理的问题。

为达到上述目的,本发明采用如下技术方案:

一种分布式数据挖掘系统,包括:用户终端组、前置服务器组、第一控制服务器、第二控制服务器以及运算服务器组;所述用户终端组包括多个用户终端;所述前置服务器组包括多个前置服务器;所述运算服务器组包括多个运算服务器;所述用户终端组与所述前置服务器组通信连接;所述前置服务器组分别与所述第一控制服务器、第二控制服务器和所述运算服务器组通信连接;

所述用户终端,用于向所述前置服务器发送数据挖掘任务请求;

所述前置服务器,用于解析所述数据挖掘任务请求的域名信息,根据所述数据挖掘任务请求的域名信息将所述数据挖掘任务请求提交到作为工作节点的第一控制服务器;

所述第一控制服务器,用于将所述数据挖掘任务请求对应的数据挖掘任务进行分解,形成多个数据挖掘子任务;将所述多个数据挖掘子任务发送给所述前置服务器;

所述前置服务器,还用于将所述多个数据挖掘子任务分配到多个运算服务器处进行处理,并接收运算服务器的任务反馈信息,并将所述任务反馈信息发送给所述第一控制服务器;

所述第一控制服务器,还用于将所述任务反馈信息实时同步发送到第二控制服务器处;

所述第二控制服务器,用于实时监控所述第一控制服务器,在确认所述第一控制服务器发生故障时,向所述前置服务器发送工作节点更替请求;

所述前置服务器,还用于根据所述工作节点更替请求,更新记录所述第二控制服务器的网络地址,以使得所述第二控制服务器作为工作节点;

所述第二控制服务器,还用于向各运算服务器广播任务信息收集请求;

所述运算服务器,还用于在监听到所述广播任务信息收集请求时,向所述前置服务器反馈任务情况信息;

所述前置服务器,还用于将所述任务情况信息发送给所述第二控制服务器;

所述第二控制服务器,还用于对所述任务情况信息和所述任务反馈信息进行对比,确定所述任务情况信息和所述任务反馈信息的差异信息,并根据预先设置的处理策略,对所述差异信息进行处理。

进一步的,所述前置服务器,还用于获取前置服务器组中的其他前置服务器的运行状态信息;在所述其他前置服务器的运行状态为故障状态时,接收与其他前置服务器连接的用户终端的连接请求,并建立通信连接。

进一步的,所述前置服务器,还用于记录作为工作节点的第一控制服务器的网络地址或作为工作节点的第二控制服务器的网络地址。

此外,所述前置服务器,具体用于接收运算服务器的心跳信息;所述运算服务器的心跳信息包括运算服务器处理数据挖掘子任务的任务反馈信息和运算服务器的CPU资源信息;将所述运算服务器的心跳信息发送给所述第一控制服务器。

此外,所述第一控制服务器,具体用于在将多个数据挖掘子任务发送给所述前置服务器时,向第二控制服务器发送数据同步信息;所述数据同步信息包括数据挖掘子任务的任务编号和各数据挖掘子任务对应的运算服务器的IP地址;

在接收到运算服务器的心跳信息后,将运算服务器的心跳信息实时同步发送到第二控制服务器处。

此外,所述第二控制服务器,具体用于以一预设时间间隔定时向所述第一控制服务器发送心跳请求;若连续n次向所述第一控制服务器发送心跳请求后,均没有收到第一控制服务器的心跳应答信息,则确定所述第一控制服务器发生故障,向所述前置服务器发送工作节点更替请求;其中n为预先设置的次数阈值。

此外,所述第二控制服务器,具体用于:

根据所述任务情况信息和所述任务反馈信息,生成两份任务清单列表;所述任务清单列表包括运算服务器的IP地址和运算服务器的CPU资源信息;

根据所述两份任务清单列表,确定差异信息;

若所述差异信息为第一控制服务器已分配给运算服务器后由于第一控制服务器故障,未同步到第二控制服务器的任务,根据所述任务情况信息更新第二控制服务器的数据同步信息;

若所述差异信息为第一控制服务器已分配给运算服务器,且运算服务器处理任务失败后,由于第一控制服务器故障,未同步到第二控制服务器的任务,从所述任务情况信息中获取任务失败信息,并将所述任务失败信息对应的数据挖掘子任务重新分配;

若所述差异信息为第一控制服务器尚未分配的数据挖掘子任务,将尚未分配的数据挖掘子任务通过前置服务器分配给运算服务器处进行处理。

此外,所述第一控制服务器,具体用于根据运算服务器的CPU资源信息,将一数据挖掘子任务分配给各运算服务器中CPU资源最大的运算服务器。

一种分布式数据挖掘方法,应用于上述的分布式数据挖掘系统,该系统包括:用户终端组、前置服务器组、第一控制服务器、第二控制服务器以及运算服务器组;所述用户终端组包括多个用户终端;所述前置服务器组包括多个前置服务器;所述运算服务器组包括多个运算服务器;所述用户终端组与所述前置服务器组通信连接;所述前置服务器组分别与所述第一控制服务器、第二控制服务器和所述运算服务器组通信连接;

所述方法包括:

用户终端向所述前置服务器发送数据挖掘任务请求;

前置服务器解析所述数据挖掘任务请求的域名信息,根据所述数据挖掘任务请求的域名信息将所述数据挖掘任务请求提交到作为工作节点的第一控制服务器;

第一控制服务器将所述数据挖掘任务请求对应的数据挖掘任务进行分解,形成多个数据挖掘子任务,并将所述多个数据挖掘子任务发送给所述前置服务器;

所述前置服务器将所述多个数据挖掘子任务分配到多个运算服务器处进行处理,并接收运算服务器的任务反馈信息,并将所述任务反馈信息发送给所述第一控制服务器;

所述第一控制服务器将所述任务反馈信息实时同步发送到第二控制服务器处;

所述第二控制服务器实时监控所述第一控制服务器,在确认所述第一控制服务器发生故障时,向所述前置服务器发送工作节点更替请求;

所述前置服务器根据所述工作节点更替请求,更新记录所述第二控制服务器的网络地址,以使得所述第二控制服务器作为工作节点;

所述第二控制服务器向各运算服务器广播任务信息收集请求;

所述运算服务器在监听到所述广播任务信息收集请求时,向所述前置服务器反馈任务情况信息;

所述前置服务器将所述任务情况信息发送给所述第二控制服务器;

所述第二控制服务器对所述任务情况信息和所述任务反馈信息进行对比,确定所述任务情况信息和所述任务反馈信息的差异信息,并根据预先设置的处理策略,对所述差异信息进行处理。

此外,所述的分布式数据挖掘方法,还包括:

所述前置服务器获取前置服务器组中的其他前置服务器的运行状态信息;在所述其他前置服务器的运行状态为故障状态时,接收与其他前置服务器连接的用户终端的连接请求,并建立通信连接。

此外,所述的分布式数据挖掘方法,还包括:

所述前置服务器记录作为工作节点的第一控制服务器的网络地址或作为工作节点的第二控制服务器的网络地址。

具体的,所述前置服务器将所述多个数据挖掘子任务分配到多个运算服务器处进行处理,并接收运算服务器的任务反馈信息,并将所述任务反馈信息发送给所述第一控制服务器,包括:

所述前置服务器接收运算服务器的心跳信息;所述运算服务器的心跳信息包括运算服务器处理数据挖掘子任务的任务反馈信息和运算服务器的CPU资源信息;

将所述运算服务器的心跳信息发送给所述第一控制服务器。

此外所述的分布式数据挖掘方法,还包括:

所述第一控制服务器在将多个数据挖掘子任务发送给所述前置服务器时,向第二控制服务器发送数据同步信息;所述数据同步信息包括数据挖掘子任务的任务编号和各数据挖掘子任务对应的运算服务器的IP地址;

所述第一控制服务器将所述任务反馈信息实时同步发送到第二控制服务器处,包括:

所述第一控制服务器在接收到运算服务器的心跳信息后,将运算服务器的心跳信息实时同步发送到第二控制服务器处。

具体的,所述第二控制服务器实时监控所述第一控制服务器,在确认所述第一控制服务器发生故障时,向所述前置服务器发送工作节点更替请求,包括:

所述第二控制服务器以一预设时间间隔定时向所述第一控制服务器发送心跳请求;

若连续n次向所述第一控制服务器发送心跳请求后,均没有收到第一控制服务器的心跳应答信息,则确定所述第一控制服务器发生故障,向所述前置服务器发送工作节点更替请求;其中n为预先设置的次数阈值。

具体的,所述第二控制服务器对所述任务情况信息和所述任务反馈信息进行对比,确定所述任务情况信息和所述任务反馈信息的差异信息,并根据预先设置的处理策略,对所述差异信息进行处理,包括:

所述第二控制服务器根据所述任务情况信息和所述任务反馈信息,生成两份任务清单列表;所述任务清单列表包括运算服务器的IP地址和运算服务器的CPU资源信息;

所述第二控制服务器根据所述两份任务清单列表,确定差异信息;

若所述差异信息为第一控制服务器已分配给运算服务器后由于第一控制服务器故障,未同步到第二控制服务器的任务,根据所述任务情况信息更新第二控制服务器的数据同步信息;

若所述差异信息为第一控制服务器已分配给运算服务器,且运算服务器处理任务失败后,由于第一控制服务器故障,未同步到第二控制服务器的任务,从所述任务情况信息中获取任务失败信息,并将所述任务失败信息对应的数据挖掘子任务重新分配;

若所述差异信息为第一控制服务器尚未分配的数据挖掘子任务,将尚未分配的数据挖掘子任务通过前置服务器分配给运算服务器处进行处理。

进一步的,所述的分布式数据挖掘方法,还包括:

所述第一控制服务器根据运算服务器的CPU资源信息,将一数据挖掘子任务分配给各运算服务器中CPU资源最大的运算服务器。

本发明实施例提供的一种分布式数据挖掘系统及方法,在作为工作节点的第一控制服务器发生故障时,第二控制服务器可以更替所述第一控制服务器成为新的工作节点,从而在完成工作节点切换后,恢复整个分布式数据挖掘系统的正常工作。当然,当第二控制服务器发生故障时,第一控制服务器也可以更替所述第二控制服务器,两个控制服务器可以实现主从热备的格局,避免了当前作为主控节点的JobTracker服务器一旦出现故障则将导致整个hadoop框架的任务调度体系陷入瘫痪,无法完成任务调度和处理的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种分布式数据挖掘系统的结构示意图一;

图2为本发明实施例提供的一种分布式数据挖掘方法的流程图一;

图3为本发明实施例提供的一种分布式数据挖掘方法的流程图二。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供一种分布式数据挖掘系统10,包括:用户终端组11、前置服务器组12、第一控制服务器13、第二控制服务器14以及运算服务器组15;所述用户终端组11包括多个用户终端111;所述前置服务器组12包括多个前置服务器121;所述运算服务器组15包括多个运算服务器151;所述用户终端组11与所述前置服务器组12通信连接;所述前置服务器组12分别与所述第一控制服务器13、第二控制服务器14和所述运算服务器组15通信连接。

其中,所述用户终端111,用于向所述前置服务器121发送数据挖掘任务请求。

此处,该用户终端111可以运行有hadoop客户端或者数据挖掘任务的程序脚本等。

所述前置服务器121,用于解析所述数据挖掘任务请求的域名信息,根据所述数据挖掘任务请求的域名信息将所述数据挖掘任务请求提交到作为工作节点的第一控制服务器13。

所述第一控制服务器13,用于将所述数据挖掘任务请求对应的数据挖掘任务进行分解,形成多个数据挖掘子任务。将所述多个数据挖掘子任务发送给所述前置服务器121。

所述前置服务器121,还用于将所述多个数据挖掘子任务分配到多个运算服务器151处进行处理,并接收运算服务器151的任务反馈信息,并将所述任务反馈信息发送给所述第一控制服务器13。

所述第一控制服务器13,还用于将所述任务反馈信息实时同步发送到第二控制服务器14处。

所述第二控制服务器14,用于实时监控所述第一控制服务器13,在确认所述第一控制服务器13发生故障时,向所述前置服务器121发送工作节点更替请求。

所述前置服务器121,还用于根据所述工作节点更替请求,更新记录所述第二控制服务器14的网络地址,以使得所述第二控制服务器14作为工作节点。

所述第二控制服务器14,还用于向各运算服务器151广播任务信息收集请求。

所述运算服务器151,还用于在监听到所述广播任务信息收集请求时,向所述前置服务器121反馈任务情况信息。

所述前置服务器121,还用于将所述任务情况信息发送给所述第二控制服务器14。

所述第二控制服务器14,还用于对所述任务情况信息和所述任务反馈信息进行对比,确定所述任务情况信息和所述任务反馈信息的差异信息,并根据预先设置的处理策略,对所述差异信息进行处理。

进一步的,所述前置服务器121,还用于获取前置服务器121组中的其他前置服务器121的运行状态信息。在所述其他前置服务器121的运行状态为故障状态时,接收与其他前置服务器121连接的用户终端的连接请求,并建立通信连接。

进一步的,所述前置服务器121,还用于记录作为工作节点的第一控制服务器13的网络地址或作为工作节点的第二控制服务器14的网络地址。

此外,所述前置服务器121,具体用于接收运算服务器151的心跳信息。所述运算服务器151的心跳信息包括运算服务器151处理数据挖掘子任务的任务反馈信息和运算服务器151的CPU资源信息。将所述运算服务器151的心跳信息发送给所述第一控制服务器13。

此外,所述第一控制服务器13,具体用于在将多个数据挖掘子任务发送给所述前置服务器121时,向第二控制服务器14发送数据同步信息。所述数据同步信息包括数据挖掘子任务的任务编号和各数据挖掘子任务对应的运算服务器151的IP地址。

在接收到运算服务器151的心跳信息后,将运算服务器151的心跳信息实时同步发送到第二控制服务器14处。

此外,所述第二控制服务器14,具体用于以一预设时间间隔定时向所述第一控制服务器13发送心跳请求。若连续n次向所述第一控制服务器13发送心跳请求后,均没有收到第一控制服务器13的心跳应答信息,则确定所述第一控制服务器13发生故障,向所述前置服务器121发送工作节点更替请求。其中n为预先设置的次数阈值。

此外,所述第二控制服务器14,具体用于:

根据所述任务情况信息和所述任务反馈信息,生成两份任务清单列表。所述任务清单列表包括运算服务器151的IP地址和运算服务器151的CPU资源信息。

根据所述两份任务清单列表,确定差异信息。

若所述差异信息为第一控制服务器13已分配给运算服务器151后由于第一控制服务器13故障,未同步到第二控制服务器14的任务,根据所述任务情况信息更新第二控制服务器14的数据同步信息。

若所述差异信息为第一控制服务器13已分配给运算服务器151,且运算服务器151处理任务失败后,由于第一控制服务器13故障,未同步到第二控制服务器14的任务,从所述任务情况信息中获取任务失败信息,并将所述任务失败信息对应的数据挖掘子任务重新分配。

若所述差异信息为第一控制服务器13尚未分配的数据挖掘子任务,将尚未分配的数据挖掘子任务通过前置服务器121分配给运算服务器151处进行处理。

此外,所述第一控制服务器13,具体用于根据运算服务器151的CPU资源信息,将一数据挖掘子任务分配给各运算服务器151中CPU资源最大的运算服务器151。

本发明实施例提供的一种分布式数据挖掘系统,在作为工作节点的第一控制服务器发生故障时,第二控制服务器可以更替所述第一控制服务器成为新的工作节点,从而在完成工作节点切换后,恢复整个分布式数据挖掘系统的正常工作。当然,当第二控制服务器发生故障时,第一控制服务器也可以更替所述第二控制服务器,两个控制服务器可以实现主从热备的格局,避免了当前作为主控节点的JobTracker服务器一旦出现故障则将导致整个hadoop框架的任务调度体系陷入瘫痪,无法完成任务调度和处理的问题。

如图2所示,本发明实施例提供一种分布式数据挖掘方法,应用于上述图1所示的分布式数据挖掘系统,所述方法包括:

步骤201、用户终端向所述前置服务器发送数据挖掘任务请求。

步骤202、前置服务器解析所述数据挖掘任务请求的域名信息,根据所述数据挖掘任务请求的域名信息将所述数据挖掘任务请求提交到作为工作节点的第一控制服务器。

步骤203、第一控制服务器将所述数据挖掘任务请求对应的数据挖掘任务进行分解,形成多个数据挖掘子任务,并将所述多个数据挖掘子任务发送给所述前置服务器。

步骤204、所述前置服务器将所述多个数据挖掘子任务分配到多个运算服务器处进行处理,并接收运算服务器的任务反馈信息,并将所述任务反馈信息发送给所述第一控制服务器。

步骤205、所述第一控制服务器将所述任务反馈信息实时同步发送到第二控制服务器处。

步骤206、所述第二控制服务器实时监控所述第一控制服务器,在确认所述第一控制服务器发生故障时,向所述前置服务器发送工作节点更替请求。

步骤207、所述前置服务器根据所述工作节点更替请求,更新记录所述第二控制服务器的网络地址,以使得所述第二控制服务器作为工作节点。

步骤208、所述第二控制服务器向各运算服务器广播任务信息收集请求。

步骤209、所述运算服务器在监听到所述广播任务信息收集请求时,向所述前置服务器反馈任务情况信息。

步骤210、所述前置服务器将所述任务情况信息发送给所述第二控制服务器。

步骤211、所述第二控制服务器对所述任务情况信息和所述任务反馈信息进行对比,确定所述任务情况信息和所述任务反馈信息的差异信息,并根据预先设置的处理策略,对所述差异信息进行处理。

本发明实施例提供的一种分布式数据挖掘方法,在作为工作节点的第一控制服务器发生故障时,第二控制服务器可以更替所述第一控制服务器成为新的工作节点,从而在完成工作节点切换后,恢复整个分布式数据挖掘系统的正常工作。当然,当第二控制服务器发生故障时,第一控制服务器也可以更替所述第二控制服务器,两个控制服务器可以实现主从热备的格局,避免了当前作为主控节点的JobTracker服务器一旦出现故障则将导致整个hadoop框架的任务调度体系陷入瘫痪,无法完成任务调度和处理的问题。

为了使本领域的技术人员更好的了解本发明,下面列举一个更为详细的实施例,如图3所示,本发明实施例提供一种分布式数据挖掘方法,包括:

步骤301、用户终端与一前置服务器建立通信连接。

步骤302、各前置服务器获取前置服务器组中的其他前置服务器的运行状态信息;在所述其他前置服务器的运行状态为故障状态时,接收与其他前置服务器连接的用户终端的连接请求,并建立通信连接。

此处,为实现前置服务器组的负载均衡,本发明采用ZooKeeper作为分布式应用程序协调服务,Zookeeper通常由多个节点(此处为各前置服务器)组成,每个节点相互之间通过心跳获得别人的运行状态信息,且每个节点的内存中都保存着全量的数据,节点单点故障并不会影响整个集群的服务能力。在本发明中,每个前置服务器作为Zookeeper的一个节点,当客户端连接到某个前置服务器上后,客户端就会保持着这个连接,并通过这个连接来发送请求、获得事件通知,以及发送心跳,如果被连接的发生故障,那么客户端会自动连到另外可用的节点上,最终组成一个高可用的服务集群,实现多个分布式并行处理之间的协同操作。

步骤303、用户终端向所述前置服务器发送数据挖掘任务请求。

步骤304、前置服务器解析所述数据挖掘任务请求的域名信息,根据所述数据挖掘任务请求的域名信息将所述数据挖掘任务请求提交到作为工作节点的第一控制服务器。

其中,所述前置服务器记录有作为工作节点的第一控制服务器的网络地址。此时,第二控制服务器作为备用节点。

步骤305、第一控制服务器将所述数据挖掘任务请求对应的数据挖掘任务进行分解,形成多个数据挖掘子任务,并将所述多个数据挖掘子任务发送给所述前置服务器。

步骤306、第一控制服务器在将多个数据挖掘子任务发送给所述前置服务器时,向第二控制服务器发送数据同步信息;所述数据同步信息包括数据挖掘子任务的任务编号和各数据挖掘子任务对应的运算服务器的IP地址。

步骤307、所述前置服务器将所述多个数据挖掘子任务分配到多个运算服务器处进行处理。

步骤308、前置服务器接收运算服务器的心跳信息,并将所述运算服务器的心跳信息发送给所述第一控制服务器。

其中,所述运算服务器的心跳信息包括运算服务器处理数据挖掘子任务的任务反馈信息和运算服务器的CPU资源信息。

步骤309、第一控制服务器可根据运算服务器的CPU资源信息,继续将一数据挖掘子任务分配给各运算服务器中CPU资源最大的运算服务器。

步骤310、第一控制服务器在接收到运算服务器的心跳信息后,将运算服务器的心跳信息实时同步发送到第二控制服务器处。

步骤311、第二控制服务器以一预设时间间隔定时向所述第一控制服务器发送心跳请求,若连续n次向所述第一控制服务器发送心跳请求后,均没有收到第一控制服务器的心跳应答信息,则确定所述第一控制服务器发生故障,向所述前置服务器发送工作节点更替请求。

其中n为预先设置的次数阈值。

步骤312、所述前置服务器根据所述工作节点更替请求,更新记录所述第二控制服务器的网络地址,以使得所述第二控制服务器作为工作节点。

此时,该前置服务器需要记录作为工作节点的第二控制服务器的网络地址。

步骤313、所述第二控制服务器向各运算服务器广播任务信息收集请求。

步骤314、所述运算服务器在监听到所述广播任务信息收集请求时,向所述前置服务器反馈任务情况信息。

步骤315、所述前置服务器将所述任务情况信息发送给所述第二控制服务器。

步骤316、所述第二控制服务器根据所述任务情况信息和所述任务反馈信息,生成两份任务清单列表。

所述任务清单列表包括运算服务器的IP地址和运算服务器的CPU资源信息。

步骤317、所述第二控制服务器根据所述两份任务清单列表,确定差异信息。

在步骤317之后,可以执行步骤318、319或者步骤320。

步骤318、若所述差异信息为第一控制服务器已分配给运算服务器后由于第一控制服务器故障,未同步到第二控制服务器的任务,根据所述任务情况信息更新第二控制服务器的数据同步信息。

步骤319、若所述差异信息为第一控制服务器已分配给运算服务器,且运算服务器处理任务失败后,由于第一控制服务器故障,未同步到第二控制服务器的任务,从所述任务情况信息中获取任务失败信息,并将所述任务失败信息对应的数据挖掘子任务重新分配。

步骤320、若所述差异信息为第一控制服务器尚未分配的数据挖掘子任务,将尚未分配的数据挖掘子任务通过前置服务器分配给运算服务器处进行处理。

在步骤318、步骤319或者步骤320完成之后,第二控制服务器作为工作节点部署完毕,由第二控制服务器作为工作节点,返回步骤304继续整个流程,此时第二控制服务器的工作过程与第一控制服务器相同,后续的监控第二控制服务器的工作由第一控制服务器来进行,这样两个控制服务器循环交替,构成了主从热备的格局。值得说明的是,第一控制服务器和第二控制服务器中的“第一”、“第二”仅仅是为了区别两个控制服务器,而两个控制服务器的结构和功能基本相同,其中一个作为工作节点时,另一个作为备用节点。

本发明实施例提供的一种分布式数据挖掘方法,在作为工作节点的第一控制服务器发生故障时,第二控制服务器可以更替所述第一控制服务器成为新的工作节点,从而在完成工作节点切换后,恢复整个分布式数据挖掘系统的正常工作。当然,当第二控制服务器发生故障时,第一控制服务器也可以更替所述第二控制服务器,两个控制服务器可以实现主从热备的格局,避免了当前作为主控节点的JobTracker服务器一旦出现故障则将导致整个hadoop框架的任务调度体系陷入瘫痪,无法完成任务调度和处理的问题。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1