作业控制方法及服务器与流程

文档序号:12463897阅读:305来源:国知局
作业控制方法及服务器与流程

本发明涉及通信领域,尤其涉及一种作业控制方法及服务器。



背景技术:

大型机(Mainframe computer)是由IBM公司最早发明的大型计算机,由于其强大的处理能力和优越的可靠性,主要用于证券、基金、股票、能源等行业的核心应用。

由于大型机的购买和维护费用高昂、新业务应用开发周期长、专业技术人员数量稀少、以及小型机和X86服务器的性能和可靠性逐步提升等相关原因,目前,已有大量的大型机客户正在评估或实施将业务从大型机迁移到小型机或X86服务器上。

大型机的业务主要分为联机交易(online)和批处理(batch)两大类。批处理作业一般用于大数据量的集中处理,一个典型的例子是,银行为某大型企业的所有员工代发工资。从这个例子可以总结出批处理作业的一些特点:数据量和计算量大(一家大型企业的员工以万计)、业务处理流程相同(核算和转账工资)、周期性(代发工资业务在每个月的固定日期触发)。批处理作业一般有一个时间窗口(Time Window),在某个时间段(比如00:00到4:00之间)内,所有的批处理作业必须执行完成。在时间窗口内,批处理作业未执行完成的,可能会影响后续业务的正常开展。

由于X86服务器发展较晚等原因,其可靠性没有大型机那么优秀,比如大型机的可用性通常能达到99.999%,这意味着在一年的时间里,大型机意外停机的时间不超过5.3分钟;如果X86服务器的可用性为99.99%,这意味着它一年内意外停机的时间为53分钟。因此,由X86服务器替换大型机所形成的X86系统中,由于X86服务器意外宕机给批处理作业时间窗口带来的影响更大。当把业务从大型机迁移到X86系统中,尤其需要关注可靠性带来的影响。

当批处理作业从大型机迁移到X86系统时,如果批处理作业故障,需要从批处理作业的第一个步骤开始执行,成功的步骤也需要重新执行。对不同的批处理作业来说,有的作业执行时间短,有的作业执行时间长;对同一个批处理作业来说,有的步骤执行时间短,有的步骤执行时间长。很显然,执行时间短的作业或步骤重新执行带来的时间开销低,执行时间长的作业或步骤重新执行带来的时间开销高。当系统因为软硬件故障宕机时,批处理作业在执行时间长的作业、步骤的概率明显更大,因此当批处理作业需要重新运行时,带来的时间开销往往是很大的,这也影响着批处理作业的执行效率。



技术实现要素:

本发明实施例中提供了一种作业控制方法及服务器,能够缩短因为服务器故障带来的批处理作业重新运行的时间开销,提高批处理作业的执行效率。

第一方面,本发明实施例提供一种作业控制方法,包括:

任务调度服务器接收第一批处理服务器在执行批处理作业时每处理完n行数据后发送的中间数据,所述中间数据携带:所述n行数据的脏数据以及所述脏数据的元数据信息;n为自然数;

所述任务调度服务器存储所述中间数据;

所述任务调度服务器判断所述批处理作业执行失败时,选择重新执行所述批处理作业的第二批处理服务器;

所述任务调度服务器将所述批处理作业执行失败前所述任务调度服务器最后一次接收到的中间数据发送至所述第二批处理服务器,作为所述第二批处理服务器重启所述批处理作业的参考数据。

结合第一方面,在第一方面第一种可能的实现方式中,所述任务调度服务器存储所述中间数据,包括:

所述任务调度服务器将所述中间数据存储于所述任务调度服务器的共享缓存中。

结合第一方面,和/或第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,还包括:

任务调度服务器将所述中间数据存储至共享存储中。

结合第一方面第二种可能的实现方式,在第一方面第三种可能的实现方式中,任务调度服务器将所述中间数据存储至共享存储中,包括:

任务调度服务器确定当前时间距离上一存储时间达到预设时间阈值时,将所述上一存储时间之后接收到的中间数据存储至共享存储中,所述上一存储时间是指距离当前时间最近的、将中间数据存储至共享存储的时间;和/或,

任务调度服务器确定上一次将中间数据存储至共享缓存之后接收到的中间数据的数据量达到数据量阈值时,将上一次将中间数据存储至共享缓存之后接收到的中间数据存储至共享存储中;和/或,

任务调度服务器确定上一次将中间数据存储至共享缓存之后接收到中间数据的次数达到次数阈值时,将上一次将中间数据存储至共享缓存之后接收到的中间数据存储至共享存储中。

第二方面,本发明实施例提供一种作业控制方法,包括:

第一批处理服务器在执行批处理作业时,每处理完n行数据后向任务调度服务器发送中间数据,所述中间数据包括:所述n行数据的脏数据以及所述脏数据的元数据信息,作为所述批处理作业执行失败时第二批处理服务器重启所述批处理作业的参考数据,n 为自然数。

第三方面,本发明实施例提供一种作业控制方法,包括:

第二批处理服务器接收到任务调度服务器发送的、用于指示第二批处理服务器重新执行失败的批处理作业的作业重启消息时,接收任务调度服务器发送的中间数据,所述中间数据包括:n行数据的脏数据以及所述脏数据的元数据信息;所述中间数据是所述任务调度服务器在所述批处理作业执行失败前最后一次接收到的中间数据;n为自然数;

所述第二批处理服务器从所述中间数据记录的步骤重启所述批处理作业。

结合第三方面,在第三方面第一种可能的实现方式中,还包括:

第二批处理服务器接收到任务调度服务器发送的作业重启消息,且无法从所述任务调度服务器接收到所述批处理作业的中间数据时,从共享存储获取所述批处理作业的第二数据;所述第二数据包括:所述共享存储最近一次接收到的所述批处理作业的脏数据和元数据信息;

所述第二批处理服务器从所述第二数据记录的步骤重启所述批处理作业。

第四方面,本发明实施例提供一种任务调度服务器,包括:

接收单元,用于接收第一批处理服务器在执行批处理作业时每处理完n行数据后发送的中间数据,所述中间数据包括:所述n行数据的脏数据以及所述脏数据的元数据信息;n为自然数;

存储单元,用于存储接收单元接收到的所述中间数据;

选择单元,用于判断所述批处理作业执行失败时,选择重新执行所述批处理作业的第二批处理服务器;

发送单元,用于将所述批处理作业执行失败前所述任务调度服务器最后一次接收到的中间数据发送至所述选择单元选择的所述第二批处理服务器,作为所述第二批处理服务器重启所述批处理作业的参考数据。

结合第四方面,在第四方面第一种可能的实现方式中,所述存储单元具体用于:将所述中间数据存储于所述任务调度服务器的共享缓存中。

结合第四方面,和/或第四方面第一种可能的实现方式,在第四方面第二种可能的实现方式中,所述存储单元还用于:将所述中间数据存储至共享存储中。

结合第四方面第二种可能的实现方式,在第四方面第三种可能的实现方式中,所述存储单元具体用于:

确定当前时间距离上一存储时间达到预设时间阈值时,将所述上一存储时间之后接收到的中间数据存储至共享存储中,所述上一存储时间是指距离当前时间最近的、将中间数据存储至共享存储的时间;和/或,

确定上一次将中间数据存储至共享缓存之后接收到的中间数据的数据量达到数据量阈值时,将上一次将中间数据存储至共享缓存之后接收到的中间数据存储至共享存储 中;和/或,

确定上一次将中间数据存储至共享缓存之后接收到中间数据的次数达到次数阈值时,将上一次将中间数据存储至共享缓存之后接收到的中间数据存储至共享存储中。

第五方面,本发明实施例提供一种批处理服务器,包括:

执行单元,用于执行批处理作业;

发送单元,用于在所述执行单元执行批处理作业时,每处理完n行数据后向任务调度服务器发送中间数据,所述中间数据包括:所述n行数据的脏数据以及所述脏数据的元数据信息,作为所述批处理作业执行失败时第二批处理服务器重启所述批处理作业的参考数据,n为自然数。

第六方面,本发明实施例提供一种批处理服务器,包括:

接收单元,用于接收到任务调度服务器发送的、用于指示第二批处理服务器重新执行失败的批处理作业的作业重启消息时,接收任务调度服务器发送的中间数据,所述中间数据包括:n行数据的脏数据以及所述脏数据的元数据信息;所述中间数据是所述任务调度服务器在所述批处理作业执行失败前最后一次接收到的中间数据;n为自然数;

执行单元,用于从所述接收单元接收到的所述中间数据记录的步骤重启所述批处理作业。

结合第六方面,在第六方面第一种可能的实现方式中,还包括:

获取单元,用于接收到任务调度服务器发送的作业重启消息,且所述接收单元无法从所述任务调度服务器接收到所述批处理作业的中间数据时,从共享存储获取所述批处理作业的第二数据;所述第二数据包括:所述共享存储最近一次接收到的所述批处理作业的脏数据和元数据信息;

所述执行单元还用于:从所述第二数据记录的步骤重启所述批处理作业。

本发明实施例中,任务调度服务器接收第一批处理服务器在执行批处理作业时每处理完n行数据后发送的中间数据,所述中间数据携带:所述n行数据的脏数据以及所述脏数据的元数据信息;n为自然数;所述任务调度服务器存储所述中间数据;所述任务调度服务器判断所述批处理作业执行失败时,选择重新执行所述批处理作业的第二批处理服务器;所述任务调度服务器将所述批处理作业执行失败前所述任务调度服务器最后一次接收到的中间数据发送至所述第二批处理服务器,作为所述第二批处理服务器重启所述批处理作业的参考数据。从而,任务调度服务器实时存储第一批处理服务器在执行批处理作业时的脏数据以及元数据信息,当第一批处理服务器执行批处理作业过程中发生故障导致批处理作业失败时,第二批处理服务器能够从与执行失败的步骤接近的步骤开始重新执行批处理作业,无需执行批处理作业中第一批处理服务器已经执行完成的步骤,缩短了因为服务器故障带来的批处理作业重新运行的时间开销,提高批处理作业的执行效率。

附图说明

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

图1为本发明实施例作业控制方法的一种网络架构示意图;

图2为本发明实施例作业控制方法的一种流程示意图;

图3为本发明实施例作业控制方法的另一种流程示意图;

图4为本发明实施例作业控制方法的另一种流程示意图;

图5为本发明实施例作业控制方法的另一种流程示意图;

图6为本发明实施例任务调度服务器的结构图;

图7为本发明实施例批处理服务器的一种结构图;

图8为本发明实施例批处理服务器的另一种结构图;

图9为本发明实施例任务调度服务器的一种结构图;

图10为本发明实施例批处理服务器的一种结构图。

具体实施方式

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

其中,本发明实施例作业控制方法所应用的网络架构可以参见图1所示,包括:主任务调度服务器110、从任务调度服务器120、批处理服务器130、以及共享存储140之间一般通过高速互联网络相互连接。

所述高速互连网络可以为支持RDMA的网络,例如IB/10GE ROCE,以保证批处理服务器与主任务调度服务器之间的数据传输速度。与传统的通信协议相比,RDMA协议可以直接对远程服务器的内存进行写操作,无需经过开销较大的CPU中断,因此具有低延时、高带宽的特点。使用IB/10GE ROCE等支持RDMA协议的互联设备,可以极大地降低共享缓存从批处理服务器传输到主任务调度服务器所带来的时间开销。

从任务调度服务器120作为主任务调度服务器110的备份服务器,防止主任务调度服务器110意外宕机;

主任务调度服务器110主要用于:调度批处理服务器330执行批处理作业。

其中,主任务调度服务器中可以包括共享缓存,存储空间为所有批处理服务器所共享,用于存储以下本发明实施例中各个批处理服务器发送的中间数据。

批处理服务器130主要用于:执行批处理作业。

共享存储140主要用于:存储批处理服务器130在执行批处理作业时读入和写出的数据。共享存储140的存储空间和存储内容为批处理服务器和任务调度服务器共享。

本发明实施例中的第一批处理服务器和第二批处理服务器均为批处理服务器,用第一、第二仅用于区别两个批处理服务器,无其他实际意义。

以上仅为本发明实施例所适用的一种应用场景举例,并不用于限制本发明实施例的应用场景。例如,上述场景中也可能仅有一个任务调度服务器,而没有主任务调度服务器、从任务调度服务器之分。

以下以该网络架构为参考,说明本发明实施例作业控制方法及服务器的实现。

参见图2,为本发明实施例作业控制方法一种流程示意图,该方法包括:

步骤201:任务调度服务器接收第一批处理服务器在执行批处理作业时每处理完n行数据后发送的中间数据,所述中间数据包括:所述n行数据的脏数据以及所述脏数据的元数据信息;n为自然数。

其中,本发明实施例所适用的应用场景中包括例如图1所示的主任务调度服务器、从任务调度服务器等多个任务调度服务器时,本发明实施例中的任务调度服务器可以为主任务调度服务器。

其中,批处理服务器在执行批处理作业时,一般是逐行进行数据处理的,一行数据是批处理作业执行的最小单位。

其中,批处理服务器在执行批处理作业时,如果某个步骤需要处理一个文件,需要将这个文件逐行进行处理,将处理之后得到的数据输出为一个新文件。在批处理服务器对该文件进行处理且未完成时,逐行处理得到的数据称为脏数据。

脏数据的元数据信息至少用于记录所述脏数据所属批处理作业及批处理作业中的步骤。例如,元数据信息可以包括:第一批处理服务器的主机名称、批处理作业名称、批处理作业步骤、批处理作业已经处理的记录数、批处理作业在任务调度服务器中的内存地址、数据长度等。

通过批处理作业在任务调度服务器中的内存地址可以定位脏数据在内存中的位置,数据长度可以确定脏数据的大小,通过以上两个信息可以读取出完整的脏数据。

n的取值可以为任意自然数,本申请并不限制。n的取值越小,当批处理作业发生故障 时,任务调度服务器存储的中间数据所属步骤越接近第一批处理服务器发生故障时所处理的步骤,从而批处理作业重新运行的时间开销越小;反之,n的取值越大,当批处理作业发生故障时,任务调度服务器存储的中间数据所属步骤一般距离第一批处理服务器发生故障时所处理的步骤越远,从而批处理作业重新运行的时间开销越大。

步骤202:任务调度服务器存储所述中间数据;

步骤203:任务调度服务器判断所述批处理作业执行失败时,选择重新执行所述批处理作业的第二批处理服务器;

步骤204:任务调度服务器将所述批处理作业执行失败前所述任务调度服务器最后一次接收到的中间数据发送至所述第二批处理服务器,作为所述第二批处理服务器重启所述批处理作业的参考数据。

本实施例中,任务调度服务器接收第一批处理服务器在执行批处理作业时每处理完n行数据后发送的中间数据,存储所述中间数据,从而第一批处理服务器的批处理作业执行失败时,选择执行所述批处理作业的第二批处理服务器,将所述批处理作业失败前最后一次接收到的中间数据发送至所述第二批处理服务器,使得所述第二批处理服务器从所述中间数据记录的步骤重启所述批处理作业,从而第二批处理服务器无需再执行第一批处理服务器已经执行完成的批处理作业的步骤,缩短了因为节点故障带来的批处理作业重新运行的时间开销,提高批处理作业的执行效率。

参见图3,为本发明实施例作业控制方法另一种流程示意图,该方法包括:

步骤301:第一批处理服务器在执行批处理作业时,每处理完n行数据后向任务调度服务器发送中间数据,所述中间数据包括:所述n行数据的脏数据以及所述脏数据的元数据信息,作为所述批处理作业执行失败时第二批处理服务器重启所述批处理作业的参考数据,n为自然数。

本实施例中,第一批处理服务器在执行批处理作业时,每处理完n行数据后向任务调度服务器发送中间数据,任务调度服务器存储所述中间数据,从而第一批处理服务器的批处理作业执行失败时,任务调度服务器将最后一次接收到的中间数据发送至所述第二批处理服务器,使得所述第二批处理服务器从所述中间数据记录的步骤重启所述批处理作业,从而第二批处理服务器无需再执行第一批处理服务器已经执行完成的批处理作业的步骤,缩短了因为节点故障带来的批处理作业重新运行的时间开销,提高批处理作业的执行效率。

参见图4,为本发明实施例作业控制方法另一种流程示意图,该方法包括:

步骤401:第二批处理服务器接收到任务调度服务器发送的、用于指示第二批处理服务器重新执行失败的批处理作业的作业重启消息时,接收任务调度服务器发送的中间数据,所述中间数据包括:n行数据的脏数据以及所述脏数据的元数据信息;所述中间数据是所述任务调度服务器在所述批处理作业执行失败前最后一次接收到的中间数据,n为自然数;

步骤402:第二批处理服务器从所述中间数据记录的步骤重启所述批处理作业。

本实施例中,第一批处理服务器在执行批处理作业时,每处理完n行数据后向任务调度服务器发送中间数据,任务调度服务器存储所述中间数据,从而第一批处理服务器执行批处理作业失败、第二批处理服务器被任务调度服务器确定重新执行失败的批处理作业时,第二批处理服务器根据任务调度服务器在所述批处理作业执行失败前最后一次接收到的中间数据重启所述批处理作业,从而第二批处理服务器无需再执行第一批处理服务器已经执行完成的批处理作业的步骤,缩短了因为节点故障带来的批处理作业重新运行的时间开销,提高批处理作业的执行效率。

参见图5,为本发明实施例作业控制方法另一种流程示意图,该方法包括:

步骤501:任务调度服务器接收批处理作业请求,将所述批处理作业调度给第一批处理服务器。

任务调度服务器在两种情况下可以接收到批处理作业请求,一种是自动触发,例如预先设置了定时触发批处理作业的任务,当定时时刻到来时任务调度服务器将接收到批处理作业请求,一种是人为触发,例如某个用户手动提交了批处理作业的作业请求给任务调度服务器。

其中,任务调度服务器在为批处理作业调度批处理服务器时,考虑的因素主要包括:批处理作业的运行等级、各个批处理服务器中同等级下已经运行的批处理作业的数量、批处理服务器的忙闲程度等。

其中,任务调度服务器选择了执行某一批处理作业的批处理服务器后,可以通过发送消息的方式通知该批处理服务器,消息的具体内容本发明实施例并不限制,不再赘述。

步骤502:第一批处理服务器执行所述批处理作业时,每处理完n行数据向任务调度服务器发送中间数据;中间数据包括:n行数据的脏数据以及所述脏数据的元数据信息。

步骤503:任务调度服务器存储所述中间数据,指示第一批处理服务器继续执行所述批处理作业。

其中,任务调度服务器可以将中间数据存储于自身的共享缓存中。

其中,任务调度服务器会将自身的状态和数据同步到备任务调度服务器,具体如何同步 本申请并不限制。

以上步骤502~步骤503为循环执行的步骤,第一批处理服务器每处理n行数据都执行步骤502~步骤503。

步骤504:任务调度服务器将所述中间数据存储至共享存储中。

其中,本步骤具体可以通过以下方法实现:

任务调度服务器确定当前时间距离上一存储时间达到预设时间阈值时,将所述上一存储时间之后接收到的中间数据存储至共享存储中,所述上一存储时间是指距离当前时间最近的、将中间数据存储至共享存储的时间;和/或,

任务调度服务器确定上一存储时间之后接收到的中间数据的数据量达到数据量阈值时,将所述上一存储时间之后接收到的中间数据存储至共享存储中;和/或,

任务调度服务器确定上一存储时间之后接收到的中间数据的次数达到次数阈值时,将所述上一存储时间之后接收到的中间数据存储至共享存储中。

步骤505:任务调度服务器判断所述第一批处理服务器对批处理作业执行失败时,

选择重新执行所述批处理作业的第二批处理服务器。

其中,任务调度服务器判断所述第一批处理服务器执行的批处理作业故障的方法本发明实施例并不限制,例如如果第一批处理服务器故障,则其处理的批处理作业必然发生故障,因此可以通过判断第一批处理服务器是否故障来判断第一批处理服务器执行的批处理作业是否故障,在一种可能的实现方式中,可以通过心跳的方式来实现第一批处理服务器故障的判断,具体的,任务调度服务器每隔一段时间给第一批处理服务器发送一个预设数据包,如果任务调度服务器接收到第一批处理服务器发送的响应消息,则任务调度服务器判断第一批处理服务器未发生故障,如果任务调度服务器在预设时间内未接收到第一批处理服务器发送的响应消息,则任务调度服务器判断第一批处理服务器故障。

其中,任务调度服务器在为批处理作业调度重新执行该批处理作业的第二批处理服务器时,具体调度方法与调度第一批处理服务器的方法可以相同,或者也可以按照轮询的调度方式、或者根据批处理服务器的负载情况确定等调度方式进行调度,这里不赘述。

其中,任务调度服务器在选择了第二批处理服务器后,可以向第二批处理服务器发送作业重启消息,从而通知第二批处理服务器重启该执行失败的批处理作业。作业重启消息的具体的具体实现本发明实施例并不限制,不再赘述。

步骤506:第二批处理服务器确定批处理作业能够从中间步骤重启时,接收任务调度服务器发送的中间数据,所述中间数据包括:n行数据的脏数据以及所述脏数据的元数据信息; 所述中间数据是在所述批处理作业执行失败前所述任务调度服务器最后一次接收到的中间数据。

其中,任务调度服务器可以在选择第二批处理服务器重启批处理作业时,主动向第二批处理服务器发送所述中间数据;也可以在第二批处理服务器确定批处理作业能够从中间步骤重启时,向任务调度服务器请求批处理作业的中间数据,任务调度服务器根据该请求向第二批处理服务器发送中间数据。

步骤507:第二批处理服务器从接收到的所述中间数据记录的步骤重启所述批处理作业。

其中,中间数据中包括了脏数据的元数据信息,例如批处理作业步骤、批处理作业已经处理的记录数等,通过上述信息可以准确定位到发生故障的批处理作业步骤以及步骤中已经处理的记录,例如假设记录的批处理作业步骤为步骤3,批处理作业已经处理的记录数为800行,则重启批处理作业时可以从步骤3开始,且跳过已经处理的800行,从第801行数据开始处理,步骤3执行完毕后继续执行批处理作业的后续步骤直到批处理作业执行完成。

其中,第二批处理服务器在重启批处理作业后,执行批处理作业的过程可以参考步骤502~步骤503,这里不赘述。

步骤508:第二批处理服务器执行完所述批处理作业时,向任务调度服务器发送作业完成消息。

步骤509:任务调度服务器将所述批处理作业未存储至共享存储的中间数据存储至共享存储中。

其中,步骤506中,如果第二批处理服务器接收到任务调度服务器发送的作业重启消息,且无法从所述任务调度服务器接收到所述批处理作业的中间数据时,第二批处理服务器可以从共享存储获取所述批处理作业的第二数据;所述第二数据包括所述共享存储最近一次接收到的所述批处理作业的脏数据和元数据信息;之后,第二批处理服务器从所述第二数据记录的步骤重启所述批处理作业。

本实施例中,第一批处理服务器在执行批处理作业时,每处理完n行数据后向任务调度服务器发送中间数据,任务调度服务器存储所述中间数据,从而第一批处理服务器的批处理作业执行失败时,任务调度服务器将最后一次接收到的中间数据发送至所述第二批处理服务器,使得所述第二批处理服务器从所述中间数据记录的步骤重启所述批处理作业,从而第二批处理服务器无需再执行第一批处理服务器已经执行完成的批处理作业的步骤,缩短了因为节点故障带来的批处理作业重新运行的时间开销,提高批处理作业的执行效率。

与上述方法相对应的,本发明实施例提供一种任务调度服务器,参见图6,任务调度服 务器600包括:

接收单元610,用于接收第一批处理服务器在执行批处理作业时每处理完n行数据后发送的中间数据,所述中间数据包括:所述n行数据的脏数据以及所述脏数据的元数据信息;n为自然数;

存储单元620,用于存储接收单元接收到的所述中间数据;

选择单元630,用于判断所述批处理作业执行失败时,选择重新执行所述批处理作业的第二批处理服务器;

发送单元640,用于将所述批处理作业执行失败前所述任务调度服务器最后一次接收到的中间数据发送至所述选择单元选择的所述第二批处理服务器,作为所述第二批处理服务器重启所述批处理作业的参考数据。

可选地,所述存储单元具体用于:将所述中间数据存储于所述任务调度服务器的共享缓存中。

可选地,所述存储单元还用于:将所述中间数据存储至共享存储中。

可选地,所述存储单元具体用于:

确定当前时间距离上一存储时间达到预设时间阈值时,将所述上一存储时间之后接收到的中间数据存储至共享存储中,所述上一存储时间是指距离当前时间最近的、将中间数据存储至共享存储的时间;和/或,

确定上一次将中间数据存储至共享缓存之后接收到的中间数据的数据量达到数据量阈值时,将上一次将中间数据存储至共享缓存之后接收到的中间数据存储至共享存储中;和/或,

确定上一次将中间数据存储至共享缓存之后接收到中间数据的次数达到次数阈值时,将上一次将中间数据存储至共享缓存之后接收到的中间数据存储至共享存储中。

本实施例中,任务调度服务器接收第一批处理服务器在执行批处理作业时每处理完n行数据后发送的中间数据,存储所述中间数据,从而第一批处理服务器的批处理作业执行失败时,选择执行所述批处理作业的第二批处理服务器,将所述批处理作业失败前最后一次接收到的中间数据发送至所述第二批处理服务器,使得所述第二批处理服务器从所述中间数据记录的步骤重启所述批处理作业,从而第二批处理服务器无需再执行第一批处理服务器已经执行完成的批处理作业的步骤,缩短了因为节点故障带来的批处理作业重新运行的时间开销,提高批处理作业的执行效率。

与上述方法相对应的,本发明实施例提供一种批处理服务器,参见图7,批处理服务器 700包括:

执行单元710,用于执行批处理作业;

发送单元720,用于在所述执行单元执行批处理作业时,每处理完n行数据后向任务调度服务器发送中间数据,所述中间数据包括:所述n行数据的脏数据以及所述脏数据的元数据信息,作为所述批处理作业执行失败时第二批处理服务器重启所述批处理作业的参考数据,n为自然数。

本实施例中,批处理服务器在执行批处理作业时,每处理完n行数据后向任务调度服务器发送中间数据,任务调度服务器存储所述中间数据,从而批处理服务器的批处理作业执行失败时,任务调度服务器将最后一次接收到的中间数据发送至所述第二批处理服务器,使得所述第二批处理服务器从所述中间数据记录的步骤重启所述批处理作业,从而第二批处理服务器无需再执行第一批处理服务器已经执行完成的批处理作业的步骤,缩短了因为节点故障带来的批处理作业重新运行的时间开销,提高批处理作业的执行效率。

与上述方法相对应的,本发明实施例提供一种批处理服务器,参见图8,批处理服务器800包括:

接收单元810,用于接收到任务调度服务器发送的、用于指示第二批处理服务器重新执行失败的批处理作业的作业重启消息时,接收任务调度服务器发送的中间数据,所述中间数据包括:n行数据的脏数据以及所述脏数据的元数据信息;所述中间数据是所述任务调度服务器在所述批处理作业执行失败前最后一次接收到的中间数据;n为自然数;

执行单元820,用于从所述接收单元接收到的所述中间数据记录的步骤重启所述批处理作业。

可选地,还包括:

获取单元,用于接收到任务调度服务器发送的作业重启消息,且所述接收单元无法从所述任务调度服务器接收到所述批处理作业的中间数据时,从共享存储获取所述批处理作业的第二数据;所述第二数据包括:所述共享存储最近一次接收到的所述批处理作业的脏数据和元数据信息;

所述执行单元还用于:从所述第二数据记录的步骤重启所述批处理作业。

本实施例中,第一批处理服务器在执行批处理作业时,每处理完n行数据后向任务调度服务器发送中间数据,任务调度服务器存储所述中间数据,从而第一批处理服务器执行批处理作业失败、第二批处理服务器被任务调度服务器确定重新执行失败的批处理作业时,第二批处理服务器根据任务调度服务器在所述批处理作业执行失败前最后一次接收到的中间数 据重启所述批处理作业,从而第二批处理服务器无需再执行第一批处理服务器已经执行完成的批处理作业的步骤,缩短了因为节点故障带来的批处理作业重新运行的时间开销,提高批处理作业的执行效率。

本发明实施例还提供一种任务调度服务器,参见图9,任务调度服务器900包括:处理器910、存储器920、收发器930和总线940;

处理器910、存储器920、收发器930通过总线940相互连接;总线940可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器920,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器920可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

收发器930用于连接其他设备,并与其他设备进行通信。收发器930用于:接收第一批处理服务器在执行批处理作业时每处理完n行数据后发送的中间数据,所述中间数据包括:所述n行数据的脏数据以及所述脏数据的元数据信息;n为自然数;将所述批处理作业执行失败前所述任务调度服务器最后一次接收到的中间数据发送至所述第二批处理服务器,作为所述第二批处理服务器重启所述批处理作业的参考数据。

所述处理器910执行所述程序代码,用于存储所述中间数据;判断所述批处理作业执行失败时,选择重新执行所述批处理作业的第二批处理服务器。

可选地,所述处理器910具体用于:将所述中间数据存储于所述任务调度服务器的共享缓存中。

可选地,所述处理器910还用于:将所述中间数据存储至共享存储中。

可选地,所述处理器910具体用于:

确定当前时间距离上一存储时间达到预设时间阈值时,将所述上一存储时间之后接收到的中间数据存储至共享存储中,所述上一存储时间是指距离当前时间最近的、将中间数据存储至共享存储的时间;和/或,

确定上一次将中间数据存储至共享缓存之后接收到的中间数据的数据量达到数据量阈值时,将上一次将中间数据存储至共享缓存之后接收到的中间数据存储至共享存储中;和/或,

确定上一次将中间数据存储至共享缓存之后接收到中间数据的次数达到次数阈值时,将上一次将中间数据存储至共享缓存之后接收到的中间数据存储至共享存储中。

本实施例中,任务调度服务器接收第一批处理服务器在执行批处理作业时每处理完n行数据后发送的中间数据,存储所述中间数据,从而第一批处理服务器的批处理作业执行失败时,选择执行所述批处理作业的第二批处理服务器,将所述批处理作业失败前最后一次接收到的中间数据发送至所述第二批处理服务器,使得所述第二批处理服务器从所述中间数据记录的步骤重启所述批处理作业,从而第二批处理服务器无需再执行第一批处理服务器已经执行完成的批处理作业的步骤,缩短了因为节点故障带来的批处理作业重新运行的时间开销,提高批处理作业的执行效率。

本发明实施例还提供一种批处理服务器,参见图10,批处理服务器1000包括:处理器1010、存储器1020、收发器1030和总线1040;

处理器1010、存储器1020、收发器1030通过总线1040相互连接;总线1040可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器1020,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器1020可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

所述处理器1010执行所述程序代码。

收发器1030用于连接其他设备,并与其他设备进行通信。

其中,当批处理服务器1000作为第一批处理服务器时,所述收发器1030用于:在执行批处理作业时,每处理完n行数据后向任务调度服务器发送中间数据,所述中间数据包括:所述n行数据的脏数据以及所述脏数据的元数据信息,作为所述批处理作业执行失败时第二批处理服务器重启所述批处理作业的参考数据,n为自然数。

其中,当批处理服务器1000作为第二批处理服务器时,所述收发器1030用于:接收到任务调度服务器发送的、用于指示第二批处理服务器重新执行失败的批处理作业的作业重启消息时,接收任务调度服务器发送的中间数据,所述中间数据包括:n行数据的脏数据以及所述脏数据的元数据信息;所述中间数据是所述任务调度服务器在所述批处理作业执行失败前最后一次接收到的中间数据;n为自然数;

所述处理器1010用于:从所述中间数据记录的步骤重启所述批处理作业。

所述收发器1030还用于:接收到任务调度服务器发送的作业重启消息,且无法从所述任务调度服务器接收到所述批处理作业的中间数据时,从共享存储获取所述批处理作业的第二数据;所述第二数据包括:所述共享存储最近一次接收到的所述批处理作业的脏数据和 元数据信息;

所述处理器1010还用于:从所述第二数据记录的步骤重启所述批处理作业。

本实施例中,第一批处理服务器在执行批处理作业时,每处理完n行数据后向任务调度服务器发送中间数据,任务调度服务器存储所述中间数据,从而第一批处理服务器执行批处理作业失败、第二批处理服务器被任务调度服务器确定重新执行失败的批处理作业时,第二批处理服务器根据任务调度服务器在所述批处理作业执行失败前最后一次接收到的中间数据重启所述批处理作业,从而第二批处理服务器无需再执行第一批处理服务器已经执行完成的批处理作业的步骤,缩短了因为节点故障带来的批处理作业重新运行的时间开销,提高批处理作业的执行效率。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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