分布式主从系统中从节点的切换方法、主节点设备和存储介质转让专利

申请号 : CN201911183865.5

文献号 : CN112866314B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张杨

申请人 : 上海哔哩哔哩科技有限公司

摘要 :

本发明提供了一种分布式主从系统中从节点的切换方法、主节点设备和存储介质。从节点请求协调服务器成功创建临时目录后,与协调服务器维持第一预定时长的间隔的心跳;其中,协调服务器用于当心跳停止更新时,删除临时目录;从节点的切换方法包括:向从节点中的第一从节点分配任务;监测协调服务器广播的目录删除信息;若监测到第一从节点对应的临时目录被删除,则将第一从节点上未完成的任务分配至从节点中的第二从节点。通过本发明,能够减少从节点故障时,任务的响应时长。

权利要求 :

1.一种分布式主从系统中从节点的切换方法,其特征在于,所述切换方法的执行主体为主节点,所述主节点接收用户提交的任务,并将其分配至所述从节点,所述从节点请求协调服务器成功创建临时目录后,与所述协调服务器维持第一预定时长的间隔的心跳;其中,所述协调服务器用于当所述心跳停止更新时,删除所述临时目录;所述从节点的切换方法包括:向所述从节点中的第一从节点分配任务,其中,当所述从节点在所述协调服务器上成功创建所述临时目录后,能够接收并执行所述主节点分配的任务,每间隔预定时间,所述从节点将自身资源使用信息和已运行的进程数上报至所述协调服务器,所述协调服务器创建从节点状态表,并根据所述从节点上报的所述资源使用信息和所述已运行的进程数更新所述从节点状态表,其中,从节点状态表包括所述从节点、与所述从节点对应的所述资源使用信息和所述已运行的进程数,所述主节点接收到用户提交的任务后,根据所述从节点状态表以及任务分发策略选定至少一个从节点,并向选定的从节点分配任务;

监测所述协调服务器广播的目录删除信息;

若监测到所述第一从节点对应的临时目录被删除,则将所述第一从节点上未完成的任务分配至所述从节点中的第二从节点。

2.根据权利要求1所述的分布式主从系统中从节点的切换方法,其特征在于,所述协调服务器通过目录状态接口广播所述目录删除信息,所述监测所述协调服务器广播的目录删除信息包括:通过调用所述目录状态接口监测所述协调服务器广播的目录删除信息。

3.根据权利要求1所述的分布式主从系统中从节点的切换方法,其特征在于,所述切换方法还包括:若监测到所述第一从节点对应的临时目录被删除,则关闭所述第一从节点。

4.根据权利要求3所述的分布式主从系统中从节点的切换方法,其特征在于,所述关闭所述第一从节点包括:通过远程调用所述第一从节点的操作系统的命令关闭所述第一从节点。

5.根据权利要求3所述的分布式主从系统中从节点的切换方法,其特征在于,所述关闭所述第一从节点后,所述切换方法还包括:在第二预定时长后启动所述第一从节点。

6.根据权利要求1所述的分布式主从系统中从节点的切换方法,其特征在于,所述将所述第一从节点上未完成的任务分配至所述第二从节点之前,所述切换方法还包括:创建任务状态记录表;

接收所述第一从节点反馈的任务状态信息;

根据所述任务状态信息更新所述任务状态记录表;

所述将所述第一从节点上未完成的任务分配至所述第二从节点,包括:查询所述任务状态记录表,获取所述第一从节点上的未完成任务;

将所述未完成任务分配至所述第二从节点。

7.根据权利要求6所述的分布式主从系统中从节点的切换方法,其特征在于,在所述获取所述第一从节点上的未完成任务之后,且在所述将所述未完成任务分配至所述第二从节点之前,所述将所述第一从节点上未完成的任务分配至所述第二从节点还包括:判断获取到的所述未完成任务是否生成数据结果;

若所述未完成任务已生成所述数据结果,则将所述数据结果删除。

8.根据权利要求7所述的分布式主从系统中从节点的切换方法,其特征在于,所述将所述数据结果删除包括:查询所述数据结果的接收位置;

若所述接收位置为外部存储,则将所述外部存储中的所述数据结果删除;

若所述接收位置外部集群,则将所述外部集群中的所述数据结果删除。

9.一种主节点设备,其特征在于,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述方法的步骤。

10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至8任一项所述方法的步骤。

说明书 :

分布式主从系统中从节点的切换方法、主节点设备和存储

介质

技术领域

[0001] 本发明涉及分布式主从系统技术领域,尤其涉及一种分布式主从系统中从节点的切换方法、主节点设备和存储介质。

背景技术

[0002] 分布式主从系统包括主节点和多个从节点,用户通过界面提交任务到分布式主从系统后,主节点接收任务,并将任务分配至从节点执行,因此,分布式主从系统展现给用户的是一个统一的整体,用户无需关注系统内部主节点和从节点的工作流程,同时,由于分布式主从系统包括多个从节点,因此,在现有技术中,当一个从节点发生故障时,通过在主节点上重新配置,可以把故障从节点上的任务分散到其他从节点上,使得单个从节点故障时不影响其他从节点的正常运行,因而分布式主从系统的可靠性较高。
[0003] 但是,当从节点发生故障时,任务中断,需要在主节点上重新进行人工配置,不能快速切换到其他从节点上,导致从节点发生故障时,部分任务的响应时间增加。

发明内容

[0004] 本发明的目的是提供一种分布式主从系统中从节点的切换方法、主节点设备和存储介质,用于解决现有技术中从节点发生故障时,部分任务的响应时间较长的技术问题。
[0005] 一方面,为实现上述目的,本发明提供了一种分布式主从系统中从节点的切换方法。
[0006] 从节点请求协调服务器成功创建临时目录后,与协调服务器维持第一预定时长的间隔的心跳;其中,协调服务器用于当心跳停止更新时,删除临时目录;从节点的切换方法包括:向从节点中的第一从节点分配任务;监测协调服务器广播的目录删除信息;若监测到第一从节点对应的临时目录被删除,则将第一从节点上未完成的任务分配至从节点中的第二从节点。
[0007] 进一步地,协调服务器通过目录状态接口广播目录删除信息,监测协调服务器广播的目录删除信息包括:通过调用目录状态接口监测协调服务器广播的目录删除信息。
[0008] 进一步地,切换方法还包括:若监测到第一从节点对应的临时目录被删除,则关闭第一从节点。
[0009] 进一步地,关闭第一从节点包括:通过远程调用第一从节点的操作系统的命令关闭第一从节点。
[0010] 进一步地,关闭第一从节点后,切换方法还包括:在第二预定时长后启动第一从节点。
[0011] 进一步地,将第一从节点上未完成的任务分配至第二从节点之前,切换方法还包括:创建任务状态记录表;接收第一从节点反馈的任务状态信息;根据任务状态信息更新任务状态记录表;将第一从节点上未完成的任务分配至第二从节点,包括:查询任务状态记录表,获取第一从节点上的未完成任务;将未完成任务分配至第二从节点。
[0012] 进一步地,在获取第一从节点上的未完成任务之后,且在将未完成任务分配至第二从节点之前,将所述第一从节点上未完成的任务分配至第二从节点还包括:判断获取到的未完成任务是否生成数据结果;若未完成任务已生成数据结果,则将数据结果删除。
[0013] 进一步地,将数据结果删除包括:在未完成任务的任务信息中查询数据结果的接收位置;若接收位置为外部存储,则将外部存储中的数据结果删除;若接收位置外部集群,则将外部集群中的数据结果删除。
[0014] 另一方面,为实现上述目的,本发明还提供一种主节点设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
[0015] 另一方面,为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
[0016] 本发明提供的分布式主从系统中从节点的切换方法、主节点设备和存储介质,从节点在协调服务器上成功创建临时目录后,与协调服务器维持第一预定时长的间隔的心跳,协调服务器用于当心跳停止更新时,删除临时目录,同时,协调服务器能够在删除临时目录时,将目录删除信息进行广播,基于此,主节点向从节点中的第一从节点分配任务后,监测协调服务器广播的目录删除信息,以达到监控第一从节点工作状态的效果,若主节点监测到第一从节点对应的临时目录被删除,表明第一从节点发生故障,则将第一从节点上未完成的任务分配至从节点中的第二从节点,实现了故障从节点的及时感知和切换,无需在主节点上进行人工配置,主节点可自行感知并自动重新分配任务,减少从节点发生故障时任务的响应时间。

附图说明

[0017] 图1为本发明实施例一提供的分布式主从系统中从节点的切换方法;
[0018] 图2为本发明实施例一提供的另一种分布式主从系统中从节点的切换方法的流程图;
[0019] 图3为本发明实施例一提供的又一种分布式主从系统中从节点的切换方法的流程图;
[0020] 图4为本发明实施例一中步骤S103的流程图;
[0021] 图5为本发明实施例二提供的分布式主从系统中从节点的切换装置的框图;
[0022] 图6为本发明实施例三提供的主节点设备的硬件结构图。

具体实施方式

[0023] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024] 本发明提供了一种分布式主从系统中从节点的切换方法、主节点设备和存储介质。在该分布式主从系统中,多个从节点请求在协调服务器上创建临时目录,协调服务器可以创建多个从节点对应的临时目录,成功创建临时目录的从节点能够接收主节点分配的任务。同时,成功创建临时目录的从节点与协调服务器维持第一预定时长的间隔的心跳,当该心跳停止更新时,表征该从节点发生故障,此时协调服务器将该从节点对应的临时目录删除,并且,协调服务器可将目录删除信息进行广播,以使主节点能够通过该广播获得该从节点已发生故障。
[0025] 基于此,在本申请提供的分布式主从系统中从节点的切换方法中,主节点向从节点分配任务,同时主节点监测协调服务器广播的目录删除信息;当主节点监测到某个从节点对应的临时目录被删除时,说明该从节点发生故障,此时主节点将该从节点上未完成的任务分配至其他从节点上执行,也即实现用新的从节点替换发生故障的从节点来执行未完成的任务。
[0026] 其中,从节点正常时,与协调服务器维持心跳,当从节点发生故障时,该心跳停止更新,因而,协调服务器能够通过心跳停止更新来感知到从节点发生故障,并将其广播,使得主节点通过广播接收到该消息后,将故障从节点上未完成的任务分配至其他正常的从节点上,实现了故障从节点的及时感知和切换,无需在主节点上进行人工配置,即可自动重新分配任务,减少从节点发生故障时任务的响应时间。
[0027] 关于本发明提供的分布式主从系统中从节点的切换方法、主节点设备和存储介质的具体实施例,将在下文中详细描述。
[0028] 实施例一
[0029] 本发明实施例提供了一种分布式主从系统中从节点的切换方法,该分布式主从系统包括若干主节点和多个从节点,该切换方法的执行主体为主节点,该主节点接收用户提交的任务,并将其分配至从节点。本实施例仅以多个从节点中的第一从节点和第二从节点为例进行说明,该第一从节点和第二从节点为多个从节点中任意的两个从节点,通过该实施例提供的分布式主从系统中从节点的切换方法,当被分配任务的第一从节点发生故障时,主节点能够及时感知并将第一从节点上未完成的任务转换至第二从节点,实现了分布式主从系统中由第一从节点自动切换为第二从节点,具体地,该实施例提供的分布式主从系统中从节点的切换方法包括如下的步骤S101至步骤S103。
[0030] 步骤S101:向从节点中的第一从节点分配任务。
[0031] 分布式主从系统中的从节点请求协调服务器创建临时目录,当从节点在协调服务器上成功创建临时目录后,能够接收并执行主节点分配的任务。其中,协调服务器可以为zookeeper服务器。临时目录包括从节点的IP地址和端口等信息。
[0032] 主节点通过界面接收到用户提交的任务后,将任务分配至第一从节点。
[0033] 可选地,在分布式主从系统中,每间隔预定时间,从节点将自身资源使用信息和已运行的进程数上报至协调服务器,协调服务器创建从节点状态表,并根据从节点上报的资源使用信息和已运行的进程数更新从节点状态表,其中,从节点状态表包括从节点、与从节点对应的资源使用信息和已运行的进程数;主节点接收到用户提交的任务后,根据从节点状态表以及任务分发策略选定至少一个从节点,并向选定的从节点分配任务,也即根据各个从节点当前的自身资源使用信息和已运行的进程数,选择合适的从节点执行当前的任务。
[0034] 进一步可选地,资源使用信息包括至少两种资源的使用信息,例如CPU资源的使用信息和内存资源的使用信息。每个从节点每间隔预定时间,将自身CPU资源的使用信息、内存资源的使用信息和已运行的进程数上报至协调服务器。不同类型的任务运行时所消耗的主要资源不同,例如,对于mr、hivesql、shell和email等类型的任务而言,mr和shell这两种类型的任务所消耗的主要资源为内存资源,hivesql和email这两种类型的任务所消耗的主要资源为CPU资源。工作主节点根据从节点状态表确定至少一个从节点的步骤包括:工作主节点根据待分配任务的类型确定待分配任务的资源类型;在从节点状态表中查找已运行的进程数小于预定进程数的若干从节点,根据若干从节点对应的资源使用信息,确定待分配任务的资源类型消耗最少的一个从节点。具体地,待分配任务的类型为mr或shell时,确定待分配任务的资源类型为内存资源,在查找到已运行的进程数小于预定进程数的多个从节点中,选取内存资源消耗最少的一个从节点;待分配任务的类型为hivesql或email时,确定待分配任务的资源类型为CPU资源,在查找到已运行的进程数小于预定进程数的多个从节点中,选取CPU资源消耗最少的一个从节点。
[0035] 其中,主节点通过界面接收到用户提交的任务后,对任务进行分配时,可同时考虑任务的执行特性,例如,当任务为独占执行的任务时,将任务分配至一个从节点即可,当任务为包括多个子任务的并行执行的任务时,将各个子任务分别分配至不同的从节点执行。
[0036] 步骤S102:监测协调服务器广播的目录删除信息。
[0037] 协调服务器为从节点创建临时目录后,将从节点的信息写入从节点状态表,主节点可根据从节点状态表中的信息向从节点分配任务,从节点在接收并执行任务的同时,与协调服务器维持第一预定时长的间隔的心跳,也即,每间隔第一预定时长,从节点向协调服务器发送一次心跳信息,协调服务器利用接收到的心跳信息更新已有的心跳信息,实现心跳信息每间隔第一预定时长的间隔的更新,例如,第一预定时长为30s。
[0038] 当从节点发生故障时,也即从节点宕机或从节点的通信网络发生阻断等,从节点停止向协调服务器发送心跳信息,此时,协调服务器的心跳信息停止更新,协调服务器基于该停止更新的事件,删除临时目录。同时,协调服务器能够在发生临时目录被删除的事件时,广播目录删除信息。
[0039] 因此,主节点通过接收从节点的广播,即可在从节点发生故障时,接收到该从节点对应的目录删除信息。
[0040] 步骤S103:若监测到第一从节点对应的临时目录被删除,则将第一从节点上未完成的任务分配至从节点中的第二从节点。
[0041] 当主节点接收到协调服务器广播的目录删除信息,且该目录删除信息标识第一从节点对应的临时目录被删除,表征感知到第一从节点发生故障,此时将第一从节点上未完成的任务分配至第二从节点,实现了故障从节点的及时感知和切换。
[0042] 采用该实施例提供的分布式主从系统中从节点的切换方法,从节点在协调服务器上成功创建临时目录后,与协调服务器维持第一预定时长的间隔的心跳,协调服务器用于当心跳停止更新时,删除临时目录,同时,协调服务器能够在删除临时目录时,广播目录删除信息,基于此,主节点向第一从节点分配任务后,监测协调服务器广播的目录删除信息,以达到监控第一从节点的效果,若主节点接收到协调服务器广播的目录删除信息,且该目录删除信息表征第一从节点对应临时目录被删除,表明第一从节点发生故障,此时将第一从节点上未完成的任务分配至第二从节点,实现了故障从节点的及时感知和切换,无需在主节点上进行人工配置,主节点可自行感知并自动重新分配任务,减少从节点发生故障时任务的响应时间。
[0043] 可选地,在一种实施例中,协调服务器通过目录状态接口广播目录删除信息,监测协调服务器广播的目录删除信息包括:通过调用目录状态接口监测协调服务器广播的目录删除信息。
[0044] 具体而言,协调服务器提供目录状态接口,当协调服务器删除临时目录时,通过该目录状态接口可将目录删除信息进行广播,调用该目录状态接口的对象便可接收到该删除信息。主节点调用该目录状态接口,通过调用目录状态接口监测是否存在目录删除信息。
[0045] 采用该实施例提供的分布式主从系统中从节点的切换方法,主节点通过调用协调服务器的目录状态接口,来监测被分配任务的从节点的临时目录是否被删除信息,以实现对该从节点工作状态的监测,一方面,协调服务器在广播该目录删除信息时,只有调用目录状态接口的主节点才能接收到,避免该目录删除信息对分布式主从系统中其他对象的影响;另一方面,主节点只需要执行调用协调服务器的目录状态接口的步骤,即可在从节点故障时及时获得表征从节点发生故障的目录删除信息,无需主节点与从节点通过交互来实现故障判断,减少从节点的资源开销。
[0046] 图2为本发明实施例一提供的另一种分布式主从系统中从节点的切换方法的流程图,可选地,在一种实施例中,如图2所示,分布式主从系统中从节点的切换方法还包括:步骤S104,若监测到第一从节点对应的临时目录被删除,则关闭第一从节点。
[0047] 其中,需要说明的是,该步骤S104可以在步骤S103之前执行,也可以在步骤S103之后执行。
[0048] 具体而言,目录状态接口反馈的目录删除信息中可包括从节点的标识信息,第一从节点的临时目录被删除时,主节点在接收到目录删除信息后,从中可获得第一从节点的标识信息,然后主节点根据该第一从节点的标识信息确定第一从节点,并将第一从节点关闭。
[0049] 当第一从节点处于“假死”的状态,也即第一从节点并非真正完全处于无法执行任务的状态时,第一从节点可能在故障一段时候后又可执行任务。基于这种情况,主节点将第一从节点上未完成的任务分配至第二从节点后,可能出现第一从节点和第二从节点同时执行任务的情形,产生业务冲突。为了避免该业务冲突,在该实施例提供的分布式主从系统中从节点的切换方法,主节点在确定第一从节点的临时目录被删除后,便将第一从节点关闭,使得第一从节点强制下线,避免了由于第一从节点“假死”而造成的业务冲突。
[0050] 可选地,在一种实施例中,关闭第一从节点包括:通过远程调用第一从节点的操作系统的命令关闭第一从节点。
[0051] 具体而言,可设置分布式主从系统中主节点具有各从节点的远程操作权限,目录删除信息可包括从节点的IP地址。主节点在关闭第一从节点时,解析目录删除信息可得到第一从节点的IP地址,然后通过该IP地址,调用第一从节点操作系统的关机命令,实现对第一从节点关闭。
[0052] 可选地,在一种实施例中,请继续参考图2,在步骤S104关闭第一从节点后,分布式主从系统中从节点的切换方法还包括:步骤S105,在第二预定时长后启动第一从节点。
[0053] 具体而言,第一从节点被主节点关闭后,第一从节点处于下线的状态,也即处于资源闲置的状态。为了避免资源闲置,主节点关闭第一从节点第二预定时长后,重新将第一从节点启动。其中,第一从节点重新启动后,会初始化组件,清除被关闭前未完成的任务信息,并请求协调服务器创建临时目录,当第一从节点再次在协调服务器上成功创建临时目录后,能够作为新的从节点,继续接收并执行主节点分配的其他任务。
[0054] 很多情况下,第一从节点的故障可通过重启而解决,因此,采用该实施例提供的分布式主从系统中从节点的切换方法,能够进一步提升资源利用率。
[0055] 图3为本发明实施例一提供的又一种分布式主从系统中从节点的切换方法的流程图,图4为本发明实施例一中步骤S103的流程图,可选地,在一种实施例中,如图3所示,在步骤S103之前,也即将第一从节点上未完成的任务分配至第二从节点之前,切换方法还包括:步骤S106,创建任务状态记录表;步骤S107,接收第一从节点反馈的任务状态信息;步骤S108,根据任务状态信息更新任务状态记录表。如图4所示,步骤S103,也即将第一从节点上未完成的任务分配至第二从节点,包括:步骤S1031,查询任务状态记录表,获取第一从节点上的未完成任务;步骤S1032,将未完成任务分配至第二从节点。
[0056] 需要说明的是,步骤S106至步骤S108与步骤S102之间的先后执行顺序可以为任意顺序,本申请并不限定于图3所示的一种执行顺序。
[0057] 具体而言,主节点将任务分配置第一从节点上时,创建该任务对应的任务状态记录表,第一从节点在接收并执行任务的过程中,向主节点反馈任务的执行状态,也即任务状态信息,主节点根据第一从节点反馈的任务状态信息更新任务状态记录表,从而,当主节点需要将第一从节点上未完成的任务分配至第二从节点时,可通过查询任务状态记录表来获取第一从节点上未完成的任务,进而再进行分配。
[0058] 采用该实施例提供的分布式主从系统中从节点的切换方法,主节点通过任务状态记录表能够实时获知任务的执行状态,从而在从节点故障时,及时获知该故障从节点上还未完成的任务,并将其重新分配到正常的从节点上执行,进一步减小从节点故障时任务的响应时间。
[0059] 可选地,主节点在接收到任务时,可根据任务的特性参数确定任务的最长响应时长,或者,任务的参数包括最长响应时长,主节点解析任务的参数时可获得最长响应时长,无论以哪种方式获取到最长响应时长,主节点在分配任务至从节点后,在任务状态记录表写入任务的执行时间,当任务的实际执行时间达到最长响应时长,同时任务还未执行完成时,在当前执行任务的从节点上将任务删除,并将任务重新分配至其他从节点。
[0060] 进一步可选地,当出现任务的实际执行时间达到最长响应时长,同时任务还未执行完成的情况,记录任务的类型和从节点的信息,在后续分配任务时,避免将同类型的任务分配至该从节点,以提升任务的响应时长。
[0061] 可选地,在一种实施例中,请继续参考图4,在步骤S103中,获取第一从节点上的未完成任务之后,且在将未完成任务分配至第二从节点之前,步骤S103还包括:步骤S1033,判断获取到的未完成任务是否生成数据结果;步骤S1034,若未完成任务已生成数据结果,则将数据结果删除。
[0062] 具体而言,对于第一从节点上未完成的任务,可能任务已经被执行了部分步骤,且在完成部分步骤的过程生成了数据结果,对此,主节点在获取到第一从节点上未完成的任务之后,将获取到的任务分配至第二从节点之前,先判断这些任务是否已经生成数据结果,当已生成数据结果,则将生成的数据结果删除,从而避免第一从节点上未完成的任务被分配至第二从节点执行时,第二从节点再次生成相同的数据结果而造成数据冲突或数据冗余。具体地,可通过任务状态记录表来判断是否已经生成数据结果。
[0063] 采用该实施例提供的分布式主从系统中从节点的切换方法,对于第一从节点中未完成的任务,将第一从节点执行该任务形成数据结果删除,避免第二从节点执行这些任务时造成数据冲突或数据冗余,同时,在向第二从节点分配第一从节点上未完成的任务之前进行删除,避免将第二从节点执行这些任务时生成的数据结果误删除。
[0064] 可选地,在一种实施例中,将数据结果删除包括:查询数据结果的接收位置;若接收位置为外部存储,则将外部存储中的数据结果删除;若接收位置外部集群,则将外部集群中的数据结果删除。
[0065] 具体而言,在删除数据结果时,先查询数据结果的接收位置,也即先查询数据结果被传输到了哪里,一种情况下,数据结果的接收位置被写在任务状态记录表中,因而通过查询任务状态记录表,即可获得数据结果的接收位置;另一种情况下,数据结果的接收位置被写在用户提交任务的任务信息中,因而通过查询任务信息,也可获得数据结果的接收位置。
[0066] 基于从节点执行的具体任务的不同,形成的数据结果可能写入外部存储,也可能传输至外部集群,在删除数据结果时,可依据外部存储或外部集群的不同分别进行删除。
[0067] 实施例二
[0068] 对应于上述实施例一,本发明实施例二提供了一种分布式主从系统中从节点的切换装置,部分技术特征的详细描述和技术效果,可参照上述实施例一,该处不再赘述。图5为本发明实施例二提供的分布式主从系统中从节点的切换装置的框图,该切换装置设置于主节点中,从节点在协调服务器上成功创建临时目录后,与协调服务器维持第一预定时长的间隔的心跳,其中,协调服务器用于当心跳停止更新时,删除临时目录,第一从节点和第二从节点均为成功创建临时目录的从节点。如图5所示,该切换装置包括:任务分配模块201和监测模块202。
[0069] 其中,任务分配模块201用于向第一从节点分配任务;监测模块202用于监测协调服务器广播的目录删除信息,其中,任务分配模块201还用于若监测模块202监测到第一从节点对应的临时目录被删除,则将第一从节点上未完成的任务分配至第二从节点。
[0070] 可选地,在一种实施例中,协调服务器通过目录状态接口广播目录删除信息,监测模块202在监测协调服务器广播的目录删除信息时,通过调用目录状态接口监测协调服务器广播的目录删除信息。
[0071] 可选地,在一种实施例中,切换装置还包括处理模块,该处理模块用于监测到第一从节点对应的临时目录被删除,则关闭第一从节点。
[0072] 可选地,在一种实施例中,处理模块关闭第一从节点时,具体执行的步骤包括:通过远程调用第一从节点的操作系统的命令关闭第一从节点。
[0073] 可选地,在一种实施例中,处理模块还用于在关闭第一从节点后,在第二预定时长后启动第一从节点。
[0074] 可选地,在一种实施例中,切换装置还包括记录表创建模块和记录表更新模块,其中,记录表创建模块用于在任务分配模块201将第一从节点上未完成的任务分配至第二从节点之前,创建任务状态记录表;记录表更新模块用于接收第一从节点反馈的任务状态信息,并根据第一从节点反馈的任务状态信息更新任务状态记录表;任务分配模块201在将第一从节点上未完成的任务分配至第二从节点时,还用于查询任务状态记录表,以获取第一从节点上未完成的任务,然后将未完成任务分配至第二从节点。
[0075] 可选地,在一种实施例中,任务分配模块201还用于在获取第一从节点上未完成任务之后,将未完成任务分配至第二从节点之前,判断获取到的任务是否生成数据结果,且若获取到的任务已生成数据结果,将数据结果删除。
[0076] 可选地,在一种实施例中,任务分配模块201将数据结果删除时,具体执行的步骤包括:查询数据结果的接收位置,若接收位置为外部存储,则将外部存储中的数据结果删除。若接收位置为外部集群,则将外部集群中的数据结果删除。
[0077] 实施例三
[0078] 本实施例还提供一种主节点设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图6所示,本实施例的主节点设备01至少包括但不限于:可通过系统总线相互通信连接的存储器011、处理器012,如图6所示。需要指出的是,图6仅示出了具有组件存储器011和处理器012的主节点设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
[0079] 本实施例中,存储器011(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器011可以是主节点设备01的内部存储单元,例如该主节点设备01的硬盘或内存。在另一些实施例中,存储器011也可以是主节点设备01的外部存储设备,例如该主节点设备01上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器011还可以既包括主节点设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器011通常用于存储安装于主节点设备01的操作系统和各类应用软件,例如实施例二的分布式主从系统中从节点的切换装置的程序代码等。此外,存储器011还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0080] 处理器012在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器012通常用于控制主节点设备01的总体操作。本实施例中,处理器012用于运行存储器011中存储的程序代码或者处理数据,例如分布式主从系统中从节点的切换方法等。
[0081] 实施例四
[0082] 本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储分布式主从系统中从节点的切换装置,被处理器执行时实现实施例一的分布式主从系统中从节点的切换方法。
[0083] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0084] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0085] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
[0086] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。