CN114116178A - 集群框架任务管理方法以及相关装置 - Google Patents

集群框架任务管理方法以及相关装置 Download PDF

Info

Publication number
CN114116178A
CN114116178A CN202111477304.3A CN202111477304A CN114116178A CN 114116178 A CN114116178 A CN 114116178A CN 202111477304 A CN202111477304 A CN 202111477304A CN 114116178 A CN114116178 A CN 114116178A
Authority
CN
China
Prior art keywords
task
node
nodes
executed
execution
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.)
Pending
Application number
CN202111477304.3A
Other languages
English (en)
Inventor
罗伟东
付凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Hexun Huagu Information Technology Co ltd
Original Assignee
Shenzhen Hexun Huagu Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Hexun Huagu Information Technology Co ltd filed Critical Shenzhen Hexun Huagu Information Technology Co ltd
Priority to CN202111477304.3A priority Critical patent/CN114116178A/zh
Publication of CN114116178A publication Critical patent/CN114116178A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Abstract

本申请适用于数据处理技术领域,提供一种集群框架任务管理方法以及相关装置,旨在实现当集群框架中某一个节点出现故障系统服务中断时,不会导致全部任务无法提交执行。本申请方法主要包括:应用于集群框架的第一节点,包括:接收客户端发送的待执行任务;从低负载节点列表中选取备选节点,低负载节点列表记载着集群框架中低于平均负载的节点;将待执行任务备份到备选节点,得到对应的备份待执行任务;执行待执行任务,并与集群框架的所述备选节点通过心跳包指令保持连接,以使得当备选节点通过心跳包指令确定第一节点处于故障状态时,根据预设规则从备选节点中确定其中一个为执行节点,并由执行节点执行备份待执行任务。

Description

集群框架任务管理方法以及相关装置
技术领域
本申请属于数据处理技术领域,尤其涉及一种集群框架任务管理方法以及相关装置。
背景技术
计算机技术进入大数据时代,企业机构每天需要有海量的任务提交到异步任务系统进行统一管理和调度执行,实现多种计算功能。
现有主流的大数据分布式任务执行框架主要是采取不对等功能划分,主要包括管理节点和任务执行节点,以管理节点或者管理节点集群方式,进行中心化部署,任务执行节点采用分布式部署,各任务执行节点等待管理节点派发任务。当管理节点出现故障系统服务中断,会导致全部任务无法提交执行,给企业机构带来重大影响和损失。
发明内容
本申请的目的在于提供一种集群框架任务管理方法以及相关装置,旨在实现当集群框架中某一个节点出现故障系统服务中断时,不会导致全部任务无法提交执行,避免给企业机构带来重大影响和损失。
本申请是这样实现的:
本申请第一方面提供一种集群框架任务管理方法,应用于由X个节点组成的集群框架的第一节点,所述X为大于0的正整数,包括:
接收客户端发送的任务执行请求,所述任务执行请求包括待执行任务;
从低负载节点列表中选取Y个节点作为备选节点,所述低负载节点列表记载着所述集群框架中低于平均负载的节点,所述Y为大于1小于X的正整数;
将所述待执行任务备份到所述备选节点,得到对应的备份待执行任务;
执行所述待执行任务,并与所述集群框架的所述备选节点通过心跳包指令保持连接,以使得当所述备选节点通过所述心跳包指令确定所述第一节点处于故障状态时,根据预设规则从Y个所述备选节点中确定其中一个为执行节点,并由所述执行节点执行所述备份待执行任务。
可选的,在所述从低负载节点列表中选取Y个节点作为备选节点之前,所述方法包括:
周期性地收录并更新所述其他节点广播的运行状态信息;
从所述运行状态信息中确定所述集群框架中每一个节点的负载情况;
从所述负载情况中确定低于平均负载的低负载节点;
按照所述低负载节点的IP地址数值大小排序形成所述低负载节点列表。
可选的,在形成所述低负载节点列表之后,执行所述待执行任务之前,所述方法还包括:
向所述客户端发送所述低负载节点列表;
接收所述客户端在所述低负载节点列表中选择的所述第一节点。
可选的,所述根据预设规则从Y个所述备选节点中确定其中一个为执行节点包括:
按照所述低负载节点列表中最靠前或最靠后的所述备选节点作为所述执行节点。
可选的,在接收客户端发送的任务执行请求之前,所述方法还包括:
周期性地向其他节点广播自身运行状态信息,所述其他节点为所述X个节点中除所述第一节点的剩余节点;
与所述集群框架的所述其他节点通过心跳包指令保持连接。
可选的,在接收客户端发送的任务执行请求之后,执行所述待执行任务之前,所述方法还包括:
为所述待执行任务配置一个任务标识ID;
将所述任务标识ID备份到所述备选节点,得到对应的备份任务标识ID;
将所述任务标识ID发送所述客户端,以使得所述客户端能够使用所述任务标识ID对所述集群框架中任意一个节点请求任务执行结果;
在执行所述待执行任务之后,所述方法还包括:
接收所述客户端发送的任务执行结果请求,所述任务执行结果请求包括所述任务标识ID;
向所述客户端所述任务标识ID对应的任务执行结果。
可选的,所述任务执行结果包括:任务正在执行时得到的任务执行状态信息、任务执行成功后得到的任务执行完成结果、或任务执行失败后得到的任务执行异常结果;
所述执行所述待执行任务包括:
判断所述备选节点的数量是否大于1;
若所述备选节点的数量小于1,则停止执行所述备份待执行任务,认定所述备份待执行任务为任务执行失败,得到所述任务执行异常结果;
若所述备选节点的数量大于或等于1,则执行所述待执行任务,得到任务执行成功后的任务执行完成结果,或当所述备选节点通过所述心跳包指令确定所述第一节点为故障节点时,触发执行根据预设规则从Y个所述备选节点中确定其中一个为执行节点,并由所述执行节点执行所述备份待执行任务。
本申请第二方面提供一种集群框架任务管理系统,应用于由X个节点组成的集群框架的第一节点,所述X为大于0的正整数,包括:
接收单元,用于接收客户端发送的任务执行请求,所述任务执行请求包括待执行任务;
选取单元,用于从低负载节点列表中选取Y个节点作为备选节点,所述低负载节点列表记载着所述集群框架中低于平均负载的节点,所述Y为大于1小于X的正整数;
备份单元,用于将所述待执行任务备份到所述备选节点,得到对应的备份待执行任务;
执行单元,用于执行所述待执行任务,并与所述集群框架的所述备选节点通过心跳包指令保持连接,以使得当所述备选节点通过所述心跳包指令确定所述第一节点处于故障状态时,根据预设规则从Y个所述备选节点中确定其中一个为执行节点,并由所述执行节点执行所述备份待执行任务。
可选的,所述系统包括:
同步单元,用于周期性地收录并更新所述其他节点广播的运行状态信息;
确定单元,用于从所述运行状态信息中确定所述集群框架中每一个节点的负载情况;
确定单元,还用于从所述负载情况中确定低于平均负载的低负载节点;
形成单元,用于按照所述低负载节点的IP地址数值大小排序形成所述低负载节点列表。
可选的,所述系统还包括:
发送单元,用于向所述客户端发送所述低负载节点列表;
接收单元,还用于接收所述客户端在所述低负载节点列表中选择的所述第一节点。
可选的,所述执行单元在根据预设规则从Y个所述备选节点中确定其中一个为执行节点时,具体用于:
按照所述低负载节点列表中最靠前或最靠后的所述备选节点作为所述执行节点。
可选的,所述系统还包括:
发送单元,还用于周期性地向其他节点广播自身运行状态信息,所述其他节点为所述X个节点中除所述第一节点的剩余节点;
保持单元,用于与所述集群框架的所述其他节点通过心跳包指令保持连接。
可选的,所述系统还包括:
配置单元,用于为所述待执行任务配置一个任务标识ID;
备份单元,还用于将所述任务标识ID备份到所述备选节点,得到对应的备份任务标识ID;
发送单元,还用于将所述任务标识ID发送所述客户端,以使得所述客户端能够使用所述任务标识ID对所述集群框架中任意一个节点请求任务执行结果;
接收单元,还用于接收所述客户端发送的任务执行结果请求,所述任务执行结果请求包括所述任务标识ID;
发送单元,还用于向所述客户端反馈所述任务标识ID对应的任务执行结果。
可选的,所述任务执行结果包括:任务正在执行时得到的任务执行状态信息、任务执行成功后得到的任务执行完成结果、或任务执行失败后得到的任务执行异常结果;
所述执行单元在执行所述待执行任务时,具体用于:
判断所述备选节点的数量是否大于1;
若所述备选节点的数量小于1,则停止执行所述备份待执行任务,认定所述备份待执行任务为任务执行失败,得到所述任务执行异常结果;
若所述备选节点的数量大于或等于1,则执行所述待执行任务,得到任务执行成功后的任务执行完成结果,或当所述备选节点通过所述心跳包指令确定所述第一节点为故障节点时,触发执行根据预设规则从Y个所述备选节点中确定其中一个为执行节点,并由所述执行节点执行所述备份待执行任务。
本申请第三方面提供一种计算机设备,包括:
处理器、存储器、总线、输入输出接口、无线网络接口;
所述处理器通过总线与所述存储器、所述输入输出接口、所述无线网络接口相连;
所述存储器中存储有程序;
所述处理器执行所述存储器中存储的所述程序时,实现前述第一方面所述集群框架任务管理方法。
本申请第四方面提供一种计算机可读存储介质,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行如前述第一方面所述集群框架任务管理方法。
本申请第五方面提供一种计算机程序产品,所述计算机程序产品在计算机上执行时,使得所述计算机执行如前述第一方面所述集群框架任务管理方法。
以上技术方案可以看出,本申请实施例具有以下优点:
本申请的集群框架任务管理方法可以应用于由X个节点组成的集群框架的第一节点,其中X为大于0的正整数,第一节点为集群框架中任意一个节点;该第一节点通过接收客户端发送的包括待执行任务的任务执行请求,然后从低负载节点列表中选取Y个节点作为备选节点,将该待执行任务备份到该备选节点,得到对应的备份待执行任务,其中低负载节点列表记载着集群框架中低于平均负载的节点,Y为大于1小于X的正整数;再执行该待执行任务,并与集群框架的备选节点通过心跳包指令保持连接,以使得当备选节点通过心跳包指令确定第一节点处于故障状态时,根据预设规则从Y个备选节点中确定其中一个为执行节点,并由执行节点执行备份待执行任务。可见,本申请集群框架任务管理方法中第一节点与集群框架的备选节点通过心跳包指令保持连接,当集群框架中该第一节点出现故障状态时,备选节点可以很快得知第一节点处于故障状态,此时备选节点就可以根据预设规则从Y个备选节点中确定其中一个为执行节点,并由执行节点执行备份待执行任务,不会导致全部任务无法提交执行,而且由于备选节点属于低于平均负载的低负载节点,备选节点会出现故障的几率更小,避免给企业机构带来重大影响和损失。
附图说明
图1为本申请集群框架的各个节点、客户端之间的一个实施例连接拓扑示意图;
图2为本申请集群框架任务管理方法的一个实施例流程示意图;
图3为本申请集群框架任务管理方法中客户端、第一节点以及其他节点之间的一个实施例交互流程示意图;
图4为本申请集群框架任务管理框架的一个实施例结构示意图;
图5为本申请计算机设备的一个实施例结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者可能同时存在居中元件。当一个元件被称为“连接于”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。
还需要说明的是,本实施例中的左、右、上、下等方位用语,仅是互为相对概念或是以产品的正常使用状态为参考的,而不应该认为是具有限制性的。
请参阅图1,本申请集群框架任务管理方法应用于由若干个节点组成的集群框架,图1仅展示其中六个节点相互连接的场景,且集群框架中每两个节点之间至少有两条可以通讯的通信链路连接,优选为每个节点之间都有独立的通信链路进行连接,该通信链路可以为有线网络或无线网络。本申请实施例中集群框架的每一个节点都具有相同的程序功能,每一个节点的关系都是对等的,每一个节点都可以独立接收客户端的任务执行请求,客户端可以通过有线网络或无线网络与集群框架中的任意一个节点进行连接,且每一个节点都会定时对外广播自身节点的运行状态信息,同时每一个节点都会收录和更新其他节点发送的运行状态信息,该运行状态信息包括但不限于:消息版本、时间戳、节点信息、系统运行负载、当前全量任务信息、各任务的任务标识ID等。
请参阅图2,本申请集群框架任务管理方法的一个实施例,应用于由X个节点组成的集群框架的第一节点,其中X为大于0的正整数;可以理解的是,由于集群框架中的每一节点具有相同的程序功能,下面实施例仅以集群框架的第一节点为例进行说明,第一节点可以为集群框架的任意一个节点,该实施例的方法主要包括:
201、接收客户端发送的任务执行请求,任务执行请求包括待执行任务。
集群框架中的第一节点集成了任务执行功能以及任务管理功能,在本步骤可以用来接收客户端发送的任务执行请求,该任务执行请求至少包括待执行任务。
202、从低负载节点列表中选取Y个节点作为备选节点,低负载节点列表记载着集群框架中低于平均负载的节点。
本实施例的第一节点需要提前生成并维护低负载节点列表,该低负载节点列表记载着整个集群框架中低于平均负载的节点,即第一节点可以通过该低负载节点列表得知整个集群框架中相对较为空闲的节点(低于平均负载的节点),以便本步骤可以在这些低于平均负载的节点选取Y个节点作为备选节点,其中Y为大于1小于X的正整数,例如Y等于2。
203、将待执行任务备份到备选节点,得到对应的备份待执行任务。
为了避免第一节点出现故障时,导致任务无法执行完成,本步骤先将待执行任务备份到备选节点,在备选节点中得到对应的备份待执行任务。
204、执行待执行任务,并与集群框架的备选节点通过心跳包指令保持连接,以使得当备选节点通过心跳包指令确定第一节点处于故障状态时,根据预设规则从Y个备选节点中确定其中一个为执行节点,并由执行节点执行备份待执行任务。
第一节点在步骤203将待执行任务备份到备选节点之后,于本步骤执行待执行任务,并与集群框架的备选节点通过心跳包指令保持连接,若第一节点可以顺利执行完成该待执行任务,得到任务执行完成结果,表明第一节点处于正常状态,并且正常状态下的第一节点可以与与集群框架的备选节点通过心跳包指令保持连接;但当第一节点在执行该待执行任务过程中出现故障时,该第一节点就无法通过心跳包指令与群框架的备选节点保持连接,那么备选节点就可以通过心跳包指令确定第一节点是否处于故障状态,例如备选节点向第一节点发送心跳包指令超过一定数量的轮次仍的得不到第一节点的答复,或备选节点超过预设时长未接收到第一节点发送心跳包指令,均可以判定该第一节点已处于故障状态,当备选节点确定第一节点处于故障状态时,根据预设规则从Y个备选节点中确定其中一个为执行节点,并由执行节点执行备份待执行任务,该预设规则可以根据实际需要进行设定,在此不进行限定。
可见,本申请集群框架任务管理方法中第一节点与集群框架的备选节点通过心跳包指令保持连接,当集群框架中该第一节点出现故障状态时,备选节点可以很快得知第一节点处于故障状态,此时备选节点就可以根据预设规则从Y个备选节点中确定其中一个为执行节点,并由执行节点执行备份待执行任务,不会导致全部任务无法提交执行,而且由于备选节点属于低于平均负载的低负载节点,备选节点会出现故障的几率更小,避免给企业机构带来重大影响和损失。
请参阅图3、本申请集群框架任务管理方法中客户端、第一节点以及其他节点之间的一个交互实施例,其中客户端用于给集群框架中第一节点下达任务执行请求,第一节点为集群框架中任意一个节点,其他节点是指集群框架中除去第一节点(自身节点)之外的剩余节点,同时其他节点在本实施例也代指备选节点,其中备选节点为其他节点中的部分节点,包括:
301、第一节点周期性地向其他节点广播自身运行状态信息,并与其他节点通过心跳包指令保持连接。
本申请实施例集群框架的第一节点主动周期性地向其他节点广播自身运行状态信息,并与其他节点通过心跳包指令保持连接,其中该运行状态信息包括但不限于:消息版本、时间戳、节点信息、系统运行负载、当前全量任务信息、各任务的任务标识ID等。
302、第一节点收录并更新其他节点广播的运行状态信息。
同理,第一节点作为集群框架中的一个节点,第一节点同样收录并更新其他节点广播的运行状态信息,以便得知其他节点的运行状态。
303、第一节点从运行状态信息中确定集群框架中每一个节点的负载情况。
由于每一个节点向其他节点广播的运行状态信息中包括有时间戳、节点信息、系统运行负载、当前全量任务信息、各任务的任务标识ID、IP地址等,那么本步骤可以根据运行上述的运行状态信息计算得知对应节点的负载情况。
304、第一节点从负载状况中确定低于平均负载的低负载节点。
在步骤303得知集群框架中每一节点的负载情况之后,第一节点在本步骤可以进一步计算整个集群框架的平均负载,再计算整个集群框架中每个节点的负载与平均负载的差,可以筛选出整个集群框架中低于平均负载的低负载节点。
305、第一节点按照低负载节点的IP地址数值大小排序形成低负载节点列表。
在步骤304确定低于平均负载的低负载节点之后,本步骤可以按照一定的规则将低负载节点进行排序形成低负载节点列表。例如按照低负载节点的IP地址数值大小排序(根据IP地址数值大小从小到大排序或从大到小排序)形成低负载节点列表。
306、第一节点接收客户端发送的任务执行请求,该任务执行请求包括待执行任务。
本步骤的执行与图2实施例中步骤201类似,重复部分在此不再赘述。
需要说明的是,客户端可以与本申请实施例中集群框架的任意一个节点(例如图1所示的第二节点、第三节点、第四节点、第五节点、第六节点等)发送任务执行请求,本步骤以第一节点为代表集群框架的任意一个节点进行说明。在另外的实施例中,客户端还可以随意指定多个节点或者节点的域名进行发送的任务执行请求。
307、第一节点向客户端发送低负载节点列表。
在步骤306第一节点接收客户端发送的任务执行请求之后,本步骤第一节点向客户端发送低负载节点列表,以便客户端可以通过低负载节点列表得知当前可以选择执行其任务的节点。
308、客户端在低负载节点列表中选择的第一节点。
客户端需要在步骤307接收到的低负载节点列表中选择一个节点来执行其任务执行请求所要求的待执行任务,本步骤以客户端指定选择第一节点为例进行说明。
309、第一节点接收客户端选择第一节点的确认信息。
在步骤308中客户端选择第一节点执行其待执行任务后,第一节点会接收到客户端发送的确认信息。
310、第一节点为待执行任务配置任务标识ID。
由于第一节点作为集群框架中的一个对等节点,其不仅仅执行某一个客户端发送的待执行任务,还可能同时执行其他客户端的任务,为了区别不同的任务,第一节点在执行该待执行任务之前,第一节点在本步骤为待执行任务配置任务标识ID,该任务标识ID是唯一的。
311、第一节点向客户端发送任务标识ID。
将步骤310中待执行任务配置的任务标识ID发送给客户端,以便客户端在后续步骤能够使用该任务标识ID对集群框架中任意一个节点请求任务执行结果。
312、第一节点从低负载节点列表中选取Y个节点作为备选节点。
本步骤的执行与图2实施例中步骤202类似,重复部分在此不再赘述。
313、第一节点将任务标识ID备份到备选节点,得到对应的备份任务标识ID;第一节点将待执行任务备份到备选节点,得到对应的备份待执行任务。
为了避免第一节点出现故障时,导致任务无法执行完成,本步骤先将待执行任务备份和任务标识ID到备选节点,在备选节点中得到对应的备份待执行任务和备份任务标识ID。
314、第一节点执行待执行任务。
在完成步骤313的备份工作之后,第一节点开始执行该待执行任务,该待执行任务可以是大数据分析、音视频解码等,在此对待执行任务不做进一步限定。第一节点在执行该待执行任务的过程,通过心跳包指令与集群框架中的其他节点(包括备选节点)保持连接联系。
315、第一节点执行失败。
当第一节点在步骤314执行该待执行任务过程中出现故障时,该第一节点就无法通过心跳包指令与群框架的备选节点保持连接,那么备选节点就可以通过心跳包指令确定第一节点是否处于故障状态,例如备选节点向第一节点发送心跳包指令超过一定数量的轮次仍的得不到第一节点的答复,或备选节点超过预设时长未接收到第一节点发送心跳包指令,均可以由备选节点判定该第一节点已处于故障状态,表明第一节点执行失败。
316、第一节点任务执行成功,得到任务执行完成结果。
当第一节点在步骤314可以顺利执行完成该待执行任务,本步骤可以得到任务执行完成结果,表明第一节点处于正常状态,并且正常状态下的第一节点可以与与集群框架的备选节点通过心跳包指令保持连接。
317、备选份节点通过心跳包指令确定第一节点处于故障状态时,根据预设规则确定其中一个备选节点为执行节点,并由执行节点执行备份待执行任务。
可以理解的是,备选份节点通过心跳包指令确定第一节点处于故障状态时,即在步骤315中备选节点判定该第一节点已处于故障状态,第一节点执行失败时,备选节点之间会自动根据预设规则协商确定其中一个备选节点为执行节点,并由执行节点执行备份待执行任务。例如,按照所述低负载节点列表中备选节点的IP地址数值大小排序(最靠前或最靠后)确定述执行节点。
具体的,执行节点在执行备份待执行任务之前,还需要判断备选节点的数量是否大于1,若备选节点的数量小于1,表明集群框架中不存在对执行节点进行监督替换的节点,此时不应再执行该任务,当前执行节点为最后一个处理该任务的节点,则停止执行备份待执行任务,认定备份待执行任务为任务执行失败,得到任务执行异常结果;若备选节点的数量大于或等于1,表明集群框架中存在对执行节点进行监督替换的节点,此时可以执行该任务,则执行该待执行任务,得到任务执行成功后的任务执行完成结果。
318、备选节点认定任务执行失败,得到任务执行异常结果。
可以理解的是,步骤317执行节点执行备份待执行任务也可能会执行失败。具体的,执行节点在执行备份待执行任务之前,需要判断备选节点的数量是否大于1,若备选节点的数量小于1,表明集群框架中不存在对执行节点进行监督替换的节点,此时不应再执行该任务,当前执行节点为最后一个处理该任务的节点,则停止执行备份待执行任务,认定备份待执行任务为任务执行失败,得到任务执行异常结果。
319、备选节点任务执行成功,得到任务执行完成结果。
可以理解的是,步骤317执行节点执行备份待执行任务可能率会执行成功,得到任务执行完成结果。
320、集群框架的各节点将任务执行完成结果在个节点之间进行数据同步。
在步骤316或步骤319中对待执行任务执行成功后,第一节点或者是执行节点都会将任务执行完成结果在集群框架中进行数据同步,以便集群框架中的各节点都存储有该任务标识ID对应的任务执行完成结果。
321、客户端向第一节点发送任务执行结果请求,该任务执行结果请求包括任务标识ID。
在步骤316之后,第一节点可以接收到客户端发送的任务执行结果请求,第一节点可以根据任务执行结果请求携带的任务标识ID给客户端反馈对应的任务执行完成结果。
322、第一节点向客户端发送任务ID对应的任务执行状态信息、或任务执行完成结果。
第一节点在步骤321接收到客户端的任务执行结果请求时,可能正在执行该任务标识ID对应的任务,此时给客户端发送任务ID对应的任务执行状态信息,该任务执行状态信息包括当前任务执行进度百分比、当前任务执行时长等。第一节点在步骤321接收到客户端的任务执行结果请求时,可能已完成执行该任务标识ID对应的任务,此时给客户端发送任务ID对应的任务执行完成结果。
323、客户端向其他节点发送任务执行结果请求,该任务执行结果请求包括任务ID。
在步骤315、步骤318或步骤319之后,由于第一节点处于故障状态,客户端只能通过其他节点(第一节点以外)请求任务执行结果。
324、其他节点向客户端发送任务ID对应的任务正在执行时得到的任务执行状态信息、任务执行成功后得到的任务执行完成结果、或任务执行失败后得到的任务执行异常结果。
可见,本申请集群框架任务管理方法中第一节点与集群框架的备选节点通过心跳包指令保持连接,当集群框架中该第一节点出现故障状态时,备选节点可以很快得知第一节点处于故障状态,此时备选节点就可以根据预设规则从Y个备选节点中确定其中一个为执行节点,并由执行节点执行备份待执行任务,不会导致全部任务无法提交执行,而且由于备选节点属于低于平均负载的低负载节点,备选节点会出现故障的几率更小,避免给企业机构带来重大影响和损失,避免因为集群框架的某个节点出问题而导致系统整体瘫痪的情况,提高集群框架服务的稳定可靠性、扩展性和可维护性,即使集群框架仅剩下一个节点,也可以继续提供服务。
上述实施例对本申请集群框架任务管理方法进行了描述说明,下面对本申请集群框架任务管理系统进行描述,请参阅图4,一种集群框架任务管理系统,应用于由X个节点组成的集群框架的第一节点,其中X为大于0的正整数,包括:
接收单元401,用于接收客户端发送的任务执行请求,所述任务执行请求包括待执行任务;
选取单元402,用于从低负载节点列表中选取Y个节点作为备选节点,所述低负载节点列表记载着所述集群框架中低于平均负载的节点,所述Y为大于1小于X的正整数;
备份单元403,用于将所述待执行任务备份到所述备选节点,得到对应的备份待执行任务;
执行单元404,用于执行所述待执行任务,并与所述集群框架的所述备选节点通过心跳包指令保持连接,以使得当所述备选节点通过所述心跳包指令确定所述第一节点处于故障状态时,根据预设规则从Y个所述备选节点中确定其中一个为执行节点,并由所述执行节点执行所述备份待执行任务。
可选的,所述系统包括:
同步单元405,用于周期性地收录并更新所述其他节点广播的运行状态信息;
确定单元406,用于从所述运行状态信息中确定所述集群框架中每一个节点的负载情况;
确定单元406,还用于从所述负载情况中确定低于平均负载的低负载节点;
形成单元407,用于按照所述低负载节点的IP地址数值大小排序形成所述低负载节点列表。
可选的,所述系统还包括:
发送单元408,用于向所述客户端发送所述低负载节点列表;
接收单元401,还用于接收所述客户端在所述低负载节点列表中选择的所述第一节点。
可选的,所述执行单元404在根据预设规则从Y个所述备选节点中确定其中一个为执行节点时,具体用于:
按照所述低负载节点列表中最靠前或最靠后的所述备选节点作为所述执行节点。
可选的,所述系统还包括:
发送单元408,还用于周期性地向其他节点广播自身运行状态信息,所述其他节点为所述X个节点中除所述第一节点的剩余节点;
保持单元409,用于与所述集群框架的所述其他节点通过心跳包指令保持连接。
可选的,所述系统还包括:
配置单元4110,用于为所述待执行任务配置一个任务标识ID;
备份单元403,还用于将所述任务标识ID备份到所述备选节点,得到对应的备份任务标识ID;
发送单元408,还用于将所述任务标识ID发送所述客户端,以使得所述客户端能够使用所述任务标识ID对所述集群框架中任意一个节点请求任务执行结果;
接收单元401,还用于接收所述客户端发送的任务执行结果请求,所述任务执行结果请求包括所述任务标识ID;
发送单元408,还用于向所述客户端反馈所述任务标识ID对应的任务执行结果。
可选的,所述任务执行结果包括:任务正在执行时得到的任务执行状态信息、任务执行成功后得到的任务执行完成结果、或任务执行失败后得到的任务执行异常结果;
所述执行单元404在执行所述待执行任务时,具体用于:
判断所述备选节点的数量是否大于1;
若所述备选节点的数量小于1,则停止执行所述备份待执行任务,认定所述备份待执行任务为任务执行失败,得到所述任务执行异常结果;
若所述备选节点的数量大于或等于1,则执行所述待执行任务,得到任务执行成功后的任务执行完成结果,或当所述备选节点通过所述心跳包指令确定所述第一节点为故障节点时,触发执行根据预设规则从Y个所述备选节点中确定其中一个为执行节点,并由所述执行节点执行所述备份待执行任务。
本申请实施例的集群框架任务管理系统,其所执行的操作与前述图1、图2实施例中第一节点、备选节点所执行的操作类似,在此不再进行赘述。
可见,本申请集群框架任务管理系统在第一节点与集群框架的备选节点通过心跳包指令保持连接,当集群框架中该第一节点出现故障状态时,备选节点可以很快得知第一节点处于故障状态,此时备选节点就可以根据预设规则从Y个备选节点中确定其中一个为执行节点,并由执行节点执行备份待执行任务,不会导致全部任务无法提交执行,而且由于备选节点属于低于平均负载的低负载节点,备选节点会出现故障的几率更小,避免给企业机构带来重大影响和损失。
下面对本申请实施例的计算机设备进行描述,请参阅图5,本申请实施例中计算机设备的一个实施例包括:
该计算机设备500可以包括一个或一个以上处理器(central processing units,CPU)501和存储器502,该存储器502中存储有一个或一个以上的应用程序或数据。其中,存储器502是易失性存储或持久存储。存储在存储器502的程序可以包括一个或一个以上模块,每个模块可以包括对计算机设备中的一系列指令操作。更进一步地,处理器501可以设置为与存储器502通信,在计算机设备500上执行存储器502中的一系列指令操作。计算机设备500还可以包括一个或一个以上无线网络接口503,一个或一个以上输入输出接口504,和/或,一个或一个以上操作系统,例如Windows Server,Mac OS,Unix,Linux,FreeBSD等。该处理器501可以执行前述图1至图2所示实施例中第一节点所执行的操作,具体此处不再赘述。
在本申请实施例所提供的几个实施例中,本领域技术人员应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-only memory)、随机存取存储器(RAM,randomaccess memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种集群框架任务管理方法,其特征在于,应用于由X个节点组成的集群框架的第一节点,所述X为大于0的正整数,包括:
接收客户端发送的任务执行请求,所述任务执行请求包括待执行任务;
从低负载节点列表中选取Y个节点作为备选节点,所述低负载节点列表记载着所述集群框架中低于平均负载的节点,所述Y为大于1小于X的正整数;
将所述待执行任务备份到所述备选节点,得到对应的备份待执行任务;
执行所述待执行任务,并与所述集群框架的所述备选节点通过心跳包指令保持连接,以使得当所述备选节点通过所述心跳包指令确定所述第一节点处于故障状态时,根据预设规则从Y个所述备选节点中确定其中一个为执行节点,并由所述执行节点执行所述备份待执行任务。
2.根据权利要求1所述集群框架任务管理方法,其特征在于,在所述从低负载节点列表中选取Y个节点作为备选节点之前,所述方法包括:
周期性地收录并更新所述其他节点广播的运行状态信息;
从所述运行状态信息中确定所述集群框架中每一个节点的负载情况;
从所述负载情况中确定低于平均负载的低负载节点;
按照所述低负载节点的IP地址数值大小排序形成所述低负载节点列表。
3.根据权利要求2所述集群框架任务管理方法,其特征在于,在形成所述低负载节点列表之后,执行所述待执行任务之前,所述方法还包括:
向所述客户端发送所述低负载节点列表;
接收所述客户端在所述低负载节点列表中选择的所述第一节点。
4.根据权利要求2所述集群框架任务管理方法,其特征在于,所述根据预设规则从Y个所述备选节点中确定其中一个为执行节点包括:
按照所述低负载节点列表中最靠前或最靠后的所述备选节点作为所述执行节点。
5.根据权利要求1所述集群框架任务管理方法,其特征在于,在接收客户端发送的任务执行请求之前,所述方法还包括:
周期性地向其他节点广播自身运行状态信息,所述其他节点为所述X个节点中除所述第一节点的剩余节点;
与所述集群框架的所述其他节点通过心跳包指令保持连接。
6.根据权利要求1所述集群框架任务管理方法,其特征在于,在接收客户端发送的任务执行请求之后,执行所述待执行任务之前,所述方法还包括:
为所述待执行任务配置一个任务标识ID;
将所述任务标识ID备份到所述备选节点,得到对应的备份任务标识ID;
将所述任务标识ID发送所述客户端,以使得所述客户端能够使用所述任务标识ID对所述集群框架中任意一个节点请求任务执行结果;
在执行所述待执行任务之后,所述方法还包括:
接收所述客户端发送的任务执行结果请求,所述任务执行结果请求包括所述任务标识ID;
向所述客户端所述任务标识ID对应的任务执行结果。
7.根据权利要求6所述集群框架任务管理方法,其特征在于,所述任务执行结果包括:任务正在执行时得到的任务执行状态信息、任务执行成功后得到的任务执行完成结果、或任务执行失败后得到的任务执行异常结果;
所述执行所述待执行任务包括:
判断所述备选节点的数量是否大于1;
若所述备选节点的数量小于1,则停止执行所述备份待执行任务,认定所述备份待执行任务为任务执行失败,得到所述任务执行异常结果;
若所述备选节点的数量大于或等于1,则执行所述待执行任务,得到任务执行成功后的任务执行完成结果,或当所述备选节点通过所述心跳包指令确定所述第一节点为故障节点时,触发执行根据预设规则从Y个所述备选节点中确定其中一个为执行节点,并由所述执行节点执行所述备份待执行任务。
8.一种集群框架任务管理系统,其特征在于,应用于由X个节点组成的集群框架的第一节点,所述X为大于0的正整数,包括:
接收单元,用于接收客户端发送的任务执行请求,所述任务执行请求包括待执行任务;
选取单元,用于从低负载节点列表中选取Y个节点作为备选节点,所述低负载节点列表记载着所述集群框架中低于平均负载的节点,所述Y为大于1小于X的正整数;
备份单元,用于将所述待执行任务备份到所述备选节点,得到对应的备份待执行任务;
执行单元,用于执行所述待执行任务,并与所述集群框架的所述备选节点通过心跳包指令保持连接,以使得当所述备选节点通过所述心跳包指令确定所述第一节点处于故障状态时,根据预设规则从Y个所述备选节点中确定其中一个为执行节点,并由所述执行节点执行所述备份待执行任务。
9.一种计算机设备,其特征在于,包括:
处理器、存储器、总线、输入输出接口、无线网络接口;
所述处理器通过总线与所述存储器、所述输入输出接口、所述无线网络接口相连;
所述存储器中存储有程序;
所述处理器执行所述存储器中存储的所述程序时,实现所述权利要求1至7任意一项所述的集群框架任务管理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行所述权利要求1至7任意一项所述的集群框架任务管理方法。
CN202111477304.3A 2021-12-06 2021-12-06 集群框架任务管理方法以及相关装置 Pending CN114116178A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111477304.3A CN114116178A (zh) 2021-12-06 2021-12-06 集群框架任务管理方法以及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111477304.3A CN114116178A (zh) 2021-12-06 2021-12-06 集群框架任务管理方法以及相关装置

Publications (1)

Publication Number Publication Date
CN114116178A true CN114116178A (zh) 2022-03-01

Family

ID=80367172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111477304.3A Pending CN114116178A (zh) 2021-12-06 2021-12-06 集群框架任务管理方法以及相关装置

Country Status (1)

Country Link
CN (1) CN114116178A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115361439A (zh) * 2022-07-12 2022-11-18 北京奇艺世纪科技有限公司 节点管理方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115361439A (zh) * 2022-07-12 2022-11-18 北京奇艺世纪科技有限公司 节点管理方法、装置、电子设备及存储介质
CN115361439B (zh) * 2022-07-12 2024-03-15 北京奇艺世纪科技有限公司 节点管理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN107465767B (zh) 一种数据同步的方法和系统
US9325757B2 (en) Methods and systems for fault-tolerant distributed stream processing
EP1697843B1 (en) System and method for managing protocol network failures in a cluster system
US20070061379A1 (en) Method and apparatus for sequencing transactions globally in a distributed database cluster
US20120197822A1 (en) System and method for using cluster level quorum to prevent split brain scenario in a data grid cluster
CN111190736A (zh) 基于微服务的低入侵分布式定时任务调度系统及方法
CN106878363B (zh) 一种信息处理方法、装置及系统
US7539150B2 (en) Node discovery and communications in a network
US10728099B2 (en) Method for processing virtual machine cluster and computer system
US20130205017A1 (en) Computer failure monitoring method and device
JP5948933B2 (ja) ジョブ継続管理装置、ジョブ継続管理方法、及び、ジョブ継続管理プログラム
CN111459639B (zh) 一种支持全球多机房部署的分布式任务管理平台及方法
US11445013B2 (en) Method for changing member in distributed system and distributed system
CN110618864A (zh) 一种中断任务恢复方法及装置
CN112217847A (zh) 微服务平台及其实现方法、电子设备及存储介质
CN114124650A (zh) 一种sptn网络控制器主从部署方法
CN112052095A (zh) 一种分布式高可用的大数据挖掘任务调度系统
US7519855B2 (en) Method and system for distributing data processing units in a communication network
CN117130730A (zh) 面向联邦Kubernetes集群的元数据管理方法
CN114116178A (zh) 集群框架任务管理方法以及相关装置
CN111541762A (zh) 数据处理的方法、管理服务器、设备及存储介质
EP3570169B1 (en) Method and system for processing device failure
CN113765690A (zh) 集群切换方法、系统、装置、终端、服务器及存储介质
CN112631756A (zh) 一种应用于航天测控软件的分布式调控方法及装置
US20160261476A1 (en) Message system for avoiding processing-performance decline

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