CN117081908A - 目标节点选择方法、装置、计算机设备及介质 - Google Patents

目标节点选择方法、装置、计算机设备及介质 Download PDF

Info

Publication number
CN117081908A
CN117081908A CN202311044921.3A CN202311044921A CN117081908A CN 117081908 A CN117081908 A CN 117081908A CN 202311044921 A CN202311044921 A CN 202311044921A CN 117081908 A CN117081908 A CN 117081908A
Authority
CN
China
Prior art keywords
time
node
executor
checkpoint information
actuator
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
CN202311044921.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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202311044921.3A priority Critical patent/CN117081908A/zh
Publication of CN117081908A publication Critical patent/CN117081908A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本发明涉及计算机技术领域,公开了目标节点选择方法、装置、计算机设备及介质,该方法包括:当检测到Spark分布式作业中的执行器发生故障时,从预设存储位置获取与执行器对应的检查点信息;将检查点信息调度到执行器在发生故障前运行的原始节点上;当确定原始节点上的剩余资源不足以启动恢复执行器时,对转移原始节点上的资源的代价进行评估,获取第一评估结果;以及,对分配执行器至其他节点上启动恢复的代价进行评估,获取第二评估结果;根据第一评估结果和第二评估结果,确定对执行器执行启动恢复操作的目标节点。通过该方式,提高执行器执行启动恢复操作的速度,减少时间消耗。

Description

目标节点选择方法、装置、计算机设备及介质
技术领域
本发明涉及计算机技术领域,具体涉及目标节点选择方法、装置、计算机设备及介质。
背景技术
Spark是大数据生态体系中的一员,是一个内存计算框架。Spark分布式作业可以运行到Yarn集群上。Spark作业包含driver(驱动)和executor(执行器)角色。Driver的作用是协调作业和结果收集。Executor是执行作业的负载。Spark支持在executor遇到故障的时候自动恢复。为了故障后能够恢复到之前的状态,需要周期性将自身的运行状态提取成为检查点信息,保存到存储设备中。故障恢复过程中,executor读取最近一次成功保存的检查点信息,从而恢复到最接近故障之前那一刻的状态。
但是在executor故障恢复过程中,需要配置目标节点完成executor故障恢复操作,然而如何选择目标节点成为本申请所要解决的技术问题。
发明内容
有鉴于此,本发明提供了一种目标节点选择方法、装置、计算机设备及介质,以解决在executor故障恢复过程中,如何选择目标节点完成executor故障恢复操作的问题。
第一方面,本发明提供了一种目标节点选择方法,该方法应用于Spark分布式作业,Spark分布式作业分布于不同节点中,该方法包括:
当检测到Spark分布式作业中的执行器发生故障时,从预设存储位置获取与执行器对应的检查点信息;
将检查点信息调度到执行器在发生故障前运行的原始节点上,以便在原始节点上完成对执行器的启动恢复操作;
当确定原始节点上的剩余资源不足以启动恢复执行器时,对转移原始节点上的资源的代价进行评估,获取第一评估结果;
以及,对分配执行器至其他节点上启动恢复的代价进行评估,获取第二评估结果;
根据第一评估结果和第二评估结果,确定对执行器执行启动恢复操作的目标节点。
本发明提供的一种目标节点选择方法,具有如下优点:
当检测到Spark分布式作业中的执行器发生故障时,从预设存储位置获取与执行器对应的检查点信息。然后将检查点信息调度到执行器发生故障前运行的原始节点上,来完成执行器的启动恢复操作。之所以将检查点信息调度到原始节点上完成执行器的启动恢复操作,是考虑到如此操作后,不需要执行Yarn传统的调度流程,减少操作步骤,提高工作效率。
但是,在某些特殊情况下,例如原始节点上的剩余资源不足以启动恢复执行器时,则可以考虑是将原始节点上的作业转移到其他节点上,以便在原始节点继续完成执行器的启动恢复操作。或者是,将执行器的检查点信息分配到其他节点上来完成执行器的启动恢复操作。具体的可以对这两种情况的执行代价进行评估,最终根据两种评估结果来确定执行器执行恢复操作的目标节点。通过该过程,其目的同样是为了尽量的提高执行器执行启动恢复操作的速度,减少时间消耗。
在一种可选的实施方式中,当检测到Spark分布式作业中的执行器发生故障时,从预设存储位置获取与执行器对应的检查点信息,具体包括:
检测Spark分布式作业与分布式文件系统是否存在复用节点;
当确定Spark分布式作业与分布式文件系统之间存在复用节点,且与执行器对应的检查点信息位于复用节点上时,从复用节点上调用检查点信息;
或者,
当确定Spark分布式作业与分布式文件系统之间未存在复用节点,或者执行器对应的检查点信息未存储在复用节点时,检测Spark分布式作业所处的本地环境中是否存在检查点信息;
当确定本地环境中存储检查点信息时,从本地环境中读取检查点信息;
或者,
当确定Spark分布式作业与分布式文件系统之间未存在复用节点,或者执行器对应的检查点信息未存储在复用节点时,且本地环境中未存储检查点信息时,从分布式文件系统中读取检查点信息。
具体的,检查点信息保险起见是分别在分布式文件系统和本地分别进行存储。之所以存储在本地就是考虑到在后期执行执行器的启动恢复操作时,可以直接从本地获取检查点信息,无需在分布式文件系统调用,节省数据调度时间。提升故障恢复的效率。但是,又担心如果在本地保存的检查点信息会发生故障,所以需要在分布式文件系统再次备份一份。但是,当Spark分布式作业与分布式文件系统存在复用节点,且与执行器对应的检查点信息位于复用节点上时,则可以直接将检查点信息存在该复用节点上,以满足上述所有需求。因此,Spark分布式作业与分布式文件系统存在复用节点,且与执行器对应的检查点信息位于复用节点上时,则可以直接从复用节点读取检查点信息。同上原理,当确定Spark分布式作业与分布式文件系统之间未存在复用节点,或者执行器对应的检查点信息未存储在复用节点时,则进一步的首先确定本地环境中是否存储有检查点信息,如果本地环境中存储有检查点信息,则直接从本地环境中读取该信息。只有在前两种情况都不满足的情绪,才会从分布式文件系统中读取检查点信息。
在一种可选的实施方式中,当确定原始节点上的剩余资源足以启动恢复执行器,但原始节点对执行器的启动恢复操作的失败次数依然超过预设次数阈值时,直接将检查点信息转移到其他节点,并在其他节点完成对执行器的启动恢复操作。
具体的,当确定原始节点上的剩余资源足以启动恢复执行器,但是原始节点对执行器的启动恢复操作的失败次数依然超过预设次数阈值,则说明原始节点自身出了故障,因此需要将检查点信息转移到其他节点,并在其他节点完成对执行器的启动恢复操作。
在一种可选的实施方式中,当确定原始节点上的剩余资源不足以启动恢复执行器时,对转移原始节点上的资源的代价进行评估,获取第一评估结果,具体包括:
获取执行器的启动时的第一消耗时间、转移原始节点中的作业的第二消耗时间、本次保存检查点信息到本地环境的第三消耗时间,以及与前一次评估对应的经过指数滑动平均算法计算得到的保存至本地环境的第四消耗时间;
根据第一消耗时间、第二消耗时间、第三消耗时间,以及第四消耗时间,确定第一评估结果。
具体的,第一消耗时间为固定时间,不论是在本地存储还是在其他节点存储都需要计算该时间。转移原始节点中的作业是为了满足本地资源足以完成执行器的启动恢复操作,转移作业需要消耗一定的时间,即为第二消耗时间。而当需要在原始节点完成执行器的启动恢复操作时,需要调用检查点信息到节点,所以也会消耗一定的保存时间,读取检查点信息所消耗的时间与保存检查点信息到本地环境所消耗的时间正相关,因此可以通过保存检查点信息到本地环境的时间来估算读取检查点信息所需要的时间,而前一次评估对应的经过指数滑动平均算法计算得到的保存至本地环境的第四消耗时间,则可以作为一个参考数据,用以辅助评估本次在原始节点完成执行器的启动恢复操作的消耗时间,因此需要根据第一消耗时间至第四消耗时间确定第一评估结果。
在一种可选的实施方式中,根据第一消耗时间、第二消耗时间、第三消耗时间,以及第四消耗时间,确定第一评估结果,具体由如下公式计算得到:
costQt=EMA(tln,costAt-1)+texecutor+costB
其中,costQt为第一评估结果,即在本地节点恢复需要的总时间,EMA()为指数滑动平均算法,tln为第三消耗时间,costAt-1为第四消耗时间,costB为第二消耗时间。
在一种可选的实施方式中,第二消耗时间根据预设数量的待转移作业中每一个待转移作业的优先级以及重新调度预设数量的待转移作业的总调度时间确定。
具体的,为了满足从原始节点专业作业后剩余资源可以完成执行器的启动恢复操作,需要转移原始节点中的作业。但是转移的作业的顺序也是有一定优先级的,其目的就是尽量转移较少的作业,达到剩余资源满足上述条件的效果。因此,需要为每一个待转移作业配置优先级。最终,根据每一个转移作业的优先级以及重新调度预设数量的待转移作业的总调度时间等来确定第二消耗时间。
在一种可选的实施方式中,第二消耗时间,根据如下公式确定:
costB=g(p1+p2+…+pn)+nt
其中,costB为第二消耗时间,g为修正系数,p1、p2、……,pn为预设数量的待转移作业分别对应的优先级,nt为重新调度预设数量的待转移作业的总调度时间。
具体的,转移优先级高的作业相较于优先级低的作业,转移代价更大,但是转移优先级低的作业数量多于优先级高的作业数量。其消耗的时间也就更多,因此需要在高优先级作业和低优先级作业之间做一个权衡,以实现获取最少的转移代价,也即是最优的转移作业消耗时间。
在一种可选的实施方式中,对分配执行器至其他节点上启动恢复的代价进行评估,获取第二评估结果,具体包括:
获取执行器的启动时的第一消耗时间、本次保存检查点信息到分布式文件系统的第五消耗时间、与前一次评估对应的经过指数滑动平均算法计算得到的保存至分布式文件系统的第六消耗时间,以及本次从分布式文件系统调度检查点信息的第七消耗时间;
根据第一消耗时间、第五消耗时间、第六消耗时间,以及第七消耗时间,确定第二评估结果。
具体的,获取第二评估结果时,需要获取第一消耗时间的理由参见前文,这里不再赘述。转移到其他节点时,不能保证本地环境中存储有检查点信息。因此,这里计算的是转移到其他节点的最大转移代价,也即是计算从分布式文件系统读取检查点信息所需要的消耗时间。而该消耗时间同样是和保存检查点信息到分布式文件系统正相关的,因此可以通过保存检查点信息到分布式文件系统对应的第五消耗时间来衡量在分布式文件系统读取检查点信息所需要的时间。类似的道理,第六消耗时间是前一次评估对应的经过指数滑动平均算法计算得到的保存至分布式文件系统的消耗时间,同样可以作为一个参考数据,用以辅助评估本次在其他节点完成执行器的启动恢复操作的消耗时间,第七消耗时间则是本次从分布式文件系统调度检查点信息到其他节点所需要的时间,因此需要根据第一消耗时间、第五消耗时间、第六消耗时间,以及第七消耗时间,确定第二评估结果。
在一种可选的实施方式中,根据第一消耗时间、第五消耗时间、第六消耗时间,以及第七消耗时间,确定第二评估结果,具体由如下公式表示:
costP=EMA(trn,costCt-1)+texecutor+th
其中,costP为第二评估结果,即将检查点信息转移到其他节点后完成执行器的启动恢复操作的总耗时,EMA()为指数滑动平均算法,trn为第五消耗时间,costCt-1为第六消耗时间,texecutor为第一消耗时间,th为第七消耗时间。
第二方面,本发明提供了一种目标节点选择装置,该装置包括:
检测模块,用于检测到Spark分布式作业中的执行器是否发生故障;
获取模块,用于当检测模块检测到Spark分布式作业中的执行器发生故障时,从预设存储位置获取与执行器对应的检查点信息;
调度模块,用于将检查点信息调度到执行器在发生故障前运行的原始节点上,以便在原始节点上完成对执行器的启动恢复操作;
评估模块,用于当确定原始节点上的剩余资源不足以启动恢复执行器时,对转移原始节点上的资源的代价进行评估,获取第一评估结果;以及,对分配执行器至其他节点上启动恢复的代价进行评估,获取第二评估结果;
确定模块,用于根据第一评估结果和第二评估结果,确定对执行器执行启动恢复操作的目标节点。
本发明提供的一种目标节点选择装置,具有如下优点:
当检测到Spark分布式作业中的执行器发生故障时,从预设存储位置获取与执行器对应的检查点信息。然后将检查点信息调度到执行器发生故障前运行的原始节点上,来完成执行器的启动恢复操作。之所以将检查点信息调度到原始节点上完成执行器的启动恢复操作,是考虑到如此操作后,不需要执行Yarn传统的调度流程,减少操作步骤,提高工作效率。
但是,在某些特殊情况下,例如原始节点上的剩余资源不足以启动恢复执行器时,则可以考虑是将原始节点上的作业转移到其他节点上,以便在原始节点继续完成执行器的启动恢复操作。或者是,将执行器的检查点信息分配到其他节点上来完成执行器的启动恢复操作。具体的可以对这两种情况的执行代价进行评估,最终根据两种评估结果来确定执行器执行恢复操作的目标节点。通过该过程,其目的同样是为了尽量的提高执行器执行启动恢复操作的速度,减少时间消耗。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的目标节点选择方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的目标节点选择方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种目标节点选择方法的流程示意图;
图2是本发明实施例提供的另一种目标节点选择方法的流程示意图;
图3是分布式文件系统、执行器以及本地环境等构成的简易结构示意图;
图4是本发明提供的对分配执行器至其他节点上启动恢复的代价进行评估获取第二评估结果的流程示意图;
图5是本发明实施例提供的一种执行器的故障恢复调度流程示意图;
图6是本发明实施例提供的一种检查点信息生成并保存的操作流程示意图;
图7是本发明实施例提供的一种执行器调度检查点信息完成恢复操作的简易操作流程示意图;
图8是根据本发明实施例的一种目标节点选择装置结构框图;
图9是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Spark是一个内存计算框架,属于一种分布式计算引擎。Spark分布式作业可以运行到Yarn集群上。Spark作业包含driver(驱动)和executor(执行器)角色。Driver的作用是协调作业,和结果收集,其可以安排作业给executor执行,监控executor运行状态等。Executor是执行作业的负载。Spark既可以支持批处理作业也可以支持流处理作业。Spark支持在executor遇到故障的时候自动恢复。为了故障后能够恢复到之前的状态,需要周期性将自身的运行状态提取成为检查点信息,保存到存储设备中。故障恢复过程中,executor读取最近一次成功保存的检查点信息,从而恢复到最接近故障之前那一刻的状态。
Yarn是一个大数据Hadoop体系的调度框架。负责统一管理整个集群的资源。可以让不同类型的作业共享集群的资源。Yarn支持队列调度策略,可以按照规则在多个作业并存的时候合理分配资源,同时确保集群各个节点的负载基本均衡,同时提供了集群节点的故障感知功能。Yarn作业的最小调度单元称为container/容器。运行在Yarn集群上的Spark作业,Spark driver和Spark executor都是Yarn的container。
目前Spark作业故障恢复过程存在如下的技术问题:
在executor故障恢复过程中,需要配置目标节点完成executor故障恢复操作。但是现有技术中没有更好的办法来选择合适的节点完成executor故障恢复操作。为解决上述问题,本发明实施例,提供了一种目标节点选择实施例,需要说明的是,在附图的流程图示出的步骤可以在包括诸如一组计算机可执行指令的计算机系统(计算机设备)中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种目标节点选择方法,可用于上述的终端机设备,如手机、平板电脑等,图1是根据本发明实施例的目标节点选择方法的流程图,该方法应用于Spark分布式作业,Spark分布式作业分布于不同节点中,如图1所示,该流程包括如下步骤:
步骤S101,当检测到Spark分布式作业中的执行器发生故障时,从预设存储位置获取与执行器对应的检查点信息。
具体的,Executor在正常运行的时候,可以配置为每间隔一段时间,将自己的运行状态提取为检查点信息,然后保存在某个预设位置。用以在Executor发生故障的时候,可以提取最新保存的检查点信息,来完成Executor的故障恢复。使Executor恢复到故障之前最近一次检查点的状态。
步骤S102,将检查点信息调度到执行器在发生故障前运行的原始节点上。
具体的,将检查点信息调度到执行器在发生故障之前运行的原始节点上,可以方便在原始节点上完成对执行器的启动恢复操作。之所以将调度信息优先考虑调度到原始节点上,是因为该步骤可以省略到Yarn配置其他节点的操作过程,可以从某种程度上提高Executor的恢复速度。
步骤S103,当确定原始节点上的剩余资源不足以启动恢复执行器时,对转移原始节点上的资源的代价进行评估,获取第一评估结果。
步骤S104,对分配执行器至其他节点上启动恢复的代价进行评估,获取第二评估结果。
步骤S105,根据第一评估结果和第二评估结果,确定对执行器执行启动恢复操作的目标节点。
具体的,在某些特殊情况下,可能原有的检查点在当前来说,不适合完成执行器的启动恢复操作。或者,当前检查点的资源不足以满足执行器的启动恢复操作。那么,这个情况下就需要对转移原始节点上的资源的代价进行评估,来获取第一评估结果。以及,对分配执行器到其他节点上启动恢复的代价进行评估,获取第二评估结果,最终根据第一评估结果和第二评估结果,确定对执行器执行启动恢复操作的目标节点。也即是,选择代价比较小的节点作为目标节点。
本实施例提供的目标节点选择方法,当检测到Spark分布式作业中的执行器发生故障时,从预设存储位置获取与执行器对应的检查点信息。然后将检查点信息调度到执行器发生故障前运行的原始节点上,来完成执行器的启动恢复操作。之所以将检查点信息调度到原始节点上完成执行器的启动恢复操作,是考虑到如此操作后,不需要执行Yarn传统的调度流程,省略掉分配资源,调度器策略执行和分配执行节点等过程,提高故障的恢复速度。
但是,在某些特殊情况下,例如原始节点上的剩余资源不足以启动恢复执行器时,则可以考虑是将原始节点上的作业转移到其他节点上,以便在原始节点继续完成执行器的启动恢复操作。或者是,将执行器的检查点信息分配到其他节点上来完成执行器的启动恢复操作。具体的可以对这两种情况的执行代价进行评估,最终根据两种评估结果来确定执行器执行恢复操作的目标节点。通过该过程,其目的同样是为了尽量的提高执行器执行启动恢复操作的速度,减少时间消耗。
在本实施例中提供了一种目标节点选择方法,可用于上述的移动终端,如手机、平板电脑等,图2是本发明实施例提供的另一种目标节点选择方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,当检测到Spark分布式作业中的执行器发生故障时,从预设存储位置获取与执行器对应的检查点信息。
在一个可选的实施方式中,检查点信息可以存放在分布式文件系统中,也可以在本地进行备份存储。之所以在本地也存储一份,是考虑到从分布式文件系统中传输到executor运行的本地环境,然后再读取本地环境上的检查点信息。如果检查点信息占用空间较大的话,该步骤会耗费很长的时间,影响故障恢复的效率。所以,可以在本地也备份一份检查点信息。相比从分布式文件系统调用检查点信息完成执行器的启动恢复,速度更快。此外,本地保存的检查点信息只有这一个执行器的检查点信息。不同于分布式文件系统上存储的检查点信息,它包含了Spark所有执行器的检查点信息。从本地查找和调用检查点信息时速率更快。当然,如果本地没有找到存放的检查点信息,则可以退而求其次从分布式文件系统中传输到本地,然后执行状态恢复。
基于上述考虑的前提,本发明实施例中还公开了另一种存储检查点的方式,即存储在复用节点中。
因此,具体的从预设位置获取与执行器对应的检查点信息的方法步骤可以参见如下步骤:
步骤a1,检测Spark分布式作业与分布式文件系统是否存在复用节点。
具体的,Spark分布式作业与分布式文件系统都配置有相应的节点集群。当两个节点集群中存在二者共用的节点时,该节点则称之为复用节点。
步骤a2,当确定Spark分布式作业与分布式文件系统之间存在复用节点,且与执行器对应的检查点信息位于复用节点上时,从复用节点上调用检查点信息。
或者,
步骤a3,当确定Spark分布式作业与分布式文件系统之间未存在复用节点,或者执行器对应的检查点信息未存储在复用节点时,检测Spark分布式作业所处的本地环境中是否存在检查点信息。
步骤a4,当确定本地环境中存储检查点信息时,从本地环境中读取检查点信息;
或者,
步骤a5,当确定Spark分布式作业与分布式文件系统之间未存在复用节点,或者执行器对应的检查点信息未存储在复用节点时,且本地环境中未存储检查点信息时,从分布式文件系统中读取检查点信息
具体的,当确定Spark分布式作业与分布式文件系统之间存在复用节点时,复用节点的情况既符合本地存储,又属于分布式文件系统存储。因此,在存储检查点信息时,可以直接存储在复用节点中。因此,在获取检查点信息时,首先要判断是否存在复用节点。若存在,则进一步确定执行器对应的检查点信息位于复用节点上。如果在复用节点上,则直接从复用节点上读取检查点信息。如果检查点信息不存在于复用节点上,或者没有复用节点,则执行步骤a3。如果本地环境中存储有检查点信息,则直接从本地环境中读取检查点信息。或者,当确定Spark分布式作业与分布式文件系统之间未存在复用节点,或者执行器对应的检查点信息未存储在复用节点时,且本地环境中未存储检查点信息时,则从分布式文件系统中读取检查点信息。具体缘由已经在前文中做了详细介绍,这里不再赘述。
图3中示意了分布式文件系统、每个节点中运行的执行器以及本地环境等构成的简易结构示意图。每一个节点的本地环境中保存在该节点上运行的执行器所对应的检查点信息。
步骤S202,将检查点信息调度到执行器在发生故障前运行的原始节点上,以便在原始节点上完成对执行器的启动恢复操作。
步骤S201和步骤S202的介绍,详细请参见图1所示实施例的步骤S101和步骤102,在此不再赘述。
步骤S203,当确定原始节点上的剩余资源不足以启动恢复执行器时,对转移原始节点上的资源的代价进行评估,获取第一评估结果。
在一个可选的实施方式中,步骤203可以通过如下方式实现,具体包括:
步骤S2031,获取执行器的启动时的第一消耗时间、转移原始节点中的作业的第二消耗时间、本次保存检查点信息到本地环境的第三消耗时间,以及与前一次评估对应的经过指数滑动平均算法计算得到的保存至本地环境的第四消耗时间。
第一消耗时间和第三消耗时间可以通过实验数据统计得到。第四消耗时间为前一次评估对应的经过指数滑动平均算法计算得到。若本次为首次时,则第四消耗时间可以为默认值。
至于第二消耗时间,则可以根据预设数量的待转移作业中每一个待转移作业的优先级以及重新调度预设数量的待转移作业的总调度时间确定。
在一个可选的实施方式中,可以参见如下方式确定第二消耗时间:
costB=g(p1+p2+…+pn)+nt (公式1)
其中,costB为第二消耗时间,g为修正系数,p1、p2、……,pn为预设数量的待转移作业分别对应的优先级,nt为重新调度预设数量的待转移作业的总调度时间。
也即是,为了满足从原始节点专业作业后剩余资源可以完成执行器的启动恢复操作,需要转移原始节点中的作业。但是转移的作业的顺序也是有一定优先级的,其目的就是尽量转移较少的作业,达到剩余资源满足上述条件的效果。因此,需要为每一个待转移作业配置优先级。最终,根据每一个转移作业的优先级以及重新调度预设数量的待转移作业的总调度时间等来确定第二消耗时间。其中,转移优先级高的作业相较于优先级低的作业,转移代价更大,但是转移优先级低的作业数量多于优先级高的作业数量。其消耗的时间也就更多,因此需要在高优先级作业和低优先级作业之间做一个权衡,以实现获取最少的转移代价,也即是最优的转移作业消耗时间。
步骤S2032,根据第一消耗时间、第二消耗时间、第三消耗时间,以及第四消耗时间,确定第一评估结果。
具体的,第一消耗时间为固定时间,不论是在本地存储还是在其他节点存储都需要计算该时间。转移原始节点中的作业是为了满足本地资源足以完成执行器的启动恢复操作,转移作业需要消耗一定的时间,即为第二消耗时间。而当需要在原始节点完成执行器的启动恢复操作时,需要调用检查点信息到节点,所以也会消耗一定的保存时间,读取检查点信息所消耗的时间与保存检查点信息到本地环境所消耗的时间正相关,因此可以通过保存检查点信息到本地环境的时间来估算读取检查点信息所需要的时间,而前一次评估对应的经过指数滑动平均算法计算得到的保存至本地环境的第四消耗时间,则可以作为一个参考数据,用以辅助评估本次在原始节点完成执行器的启动恢复操作的消耗时间,因此需要根据第一消耗时间至第四消耗时间确定第一评估结果。
在一个可选的实施方式中,根据第一消耗时间、第二消耗时间、第三消耗时间,以及第四消耗时间,确定第一评估结果,可以通过如下方式计算得到:
costQt=EMA(tln,costAt-1)+texecutor+costB (公式2)
其中,costQt为第一评估结果,即在本地节点恢复需要的总时间,EMA()为指数滑动平均算法,tln为第三消耗时间,costAt-1为第四消耗时间,costB为第二消耗时间。
步骤S204,对分配执行器至其他节点上启动恢复的代价进行评估,获取第二评估结果。
在一个可选的实施方式中,对分配执行器至其他节点上启动恢复的代价进行评估,获取第二评估结果的具体实现过程,可以参见图4所示,该方法步骤包括:
步骤S2041,获取执行器的启动时的第一消耗时间、本次保存检查点信息到分布式文件系统的第五消耗时间、与前一次评估对应的经过指数滑动平均算法计算得到的保存至分布式文件系统的第六消耗时间,以及本次从分布式文件系统调度检查点信息的第七消耗时间。
具体的,第一消耗时间、第五消耗时间,以及第七消耗时间,均可以通过实验数据统计得到。第六消耗时间则通过前一次评估对应的经过指数滑动平均算法计算得到。类似道理,若本次为首次,则第六消耗时间为默认值。
步骤S2042,根据第一消耗时间、第五消耗时间、第六消耗时间,以及第七消耗时间,确定第二评估结果。
其中,获取第二评估结果时,需要获取第一消耗时间的理由参见前文,这里不再赘述。转移到其他节点时,不能保证本地环境中存储有检查点信息。因此,这里计算的是转移到其他节点的最大转移代价,也即是计算从分布式文件系统读取检查点信息所需要的消耗时间。而该消耗时间同样是和保存检查点信息到分布式文件系统正相关的,因此可以通过保存检查点信息到分布式文件系统对应的第五消耗时间来衡量在分布式文件系统读取检查点信息所需要的时间。类似的道理,第六消耗时间是前一次评估对应的经过指数滑动平均算法计算得到的保存至分布式文件系统的消耗时间,同样可以作为一个参考数据,用以辅助评估本次在其他节点完成执行器的启动恢复操作的消耗时间,第七消耗时间则是本次从分布式文件系统调度检查点信息到其他节点所需要的时间,因此需要根据第一消耗时间、第五消耗时间、第六消耗时间,以及第七消耗时间,确定第二评估结果。
在一个可选的实施方式中,根据第一消耗时间、第五消耗时间、第六消耗时间,以及第七消耗时间,确定第二评估结果,可以通过如下公式表示:
costP=EMA(trn,costCt-1)+texecutor+th (公式3)
其中,costP为第二评估结果,即将检查点信息转移到其他节点后完成执行器的启动恢复操作的总耗时,EMA()为指数滑动平均算法,trn为第五消耗时间,costCt-1为第六消耗时间,texecutor为第一消耗时间,th为第七消耗时间。
步骤S205,根据第一评估结果和第二评估结果,确定对执行器执行启动恢复操作的目标节点。
在一个可选的实施方式中,执行器除了因为资源不足的情况下,根据第一评估结果和第二评估结果,可能确定需要转移到其他节点完成执行器的启动恢复操作外,还存在一种必然需要转移到其他节点执行恢复启动操作的情况。
例如,当确定原始节点上的剩余资源足以启动恢复执行器,但原始节点对执行器的启动恢复操作的失败次数依然超过预设次数阈值时,直接将检查点信息转移到其他节点,并在其他节点完成对执行器的启动恢复操作。
也即是,当确定原始节点上的剩余资源足以启动恢复执行器,但是原始节点对执行器的启动恢复操作的失败次数依然超过预设次数阈值,则说明原始节点自身出了故障,因此需要将检查点信息转移到其他节点,并在其他节点完成对执行器的启动恢复操作。
在本实施例中还提供了一种目标节点选择装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5中示意出执行器的故障恢复调度流程。包括:
1、开始;
2、判断是否执行Spark作业故障恢复流程;
3、否,则可以确定属于yarn正常调度流程,使用yarn调度逻辑完成资源调度和策略调度等操作,然后跳转到步骤16。
4、是,则尝试在本地执行恢复。
5、判断原先运行的节点是否还存在?是执行步骤6,否执行步骤14。
6、原先运行的节点存在,则在本地恢复启动;
7、是否启动成功?是,执行步骤7,否,执行步骤10;
8、执行器成功运行。
9、启动后运行一段时间内是否运行失败?是,执行步骤10,否执行步骤15。
10、启动失败,重试启动。
11、重试次数内是否能成功?是,跳转至步骤8。否,执行步骤12。
12、是否由于资源不足倒置无法运行?是,执行步骤13,否,执行步骤14。
13、计算第一评估结果和第二评估结果,确定目标节点。
14、通过yarn调度策略调度到其他节点;
15、执行器故障恢复完成。
16、结束操作。
图6中示意出检查点信息生成并保存的操作流程。包括:
1、开始。
2、保存检查点信息到分布式文件系统;
3、判断是否保存成功?否跳转到步骤4,是,跳转到步骤5。
4、重试保存检查点信息到分布式文件系统,然后跳转到步骤6。
5、分布式文件系统节点是否和Spark计算节点复用?是否可用本地存储策略?是,跳转到17,否,跳转到步骤7。
6、是否能成功保存?是,执行步骤8,否,执行步骤7。
7、保存检查点信息失败,作业退出,执行步骤17。
8、是否有当前节点保存检查点信息失败标记?是,跳转到步骤9,否跳转到步骤10。
9、距离上次尝试保存到本地,是否已经超过了时间间隔?是,执行步骤8,否,继续等待。
10、尝试保存检查点信息到本地环境。
11、是否成功保存?是,跳转到步骤14,否,跳转到步骤12。
12、重试保存检查点信息到本地。
13、重试次数限制内,能否保存成功?是,跳转到步骤14,否,跳转到步骤16。
14、保存检查点信息成功。
15、清除节点本地检查点保存失败标记。
16、标记当前节点本地保存检查点信息失败。
17、结束。
图7中示意出执行器调度检查点信息完成恢复操作的简易操作流程,包括:
1、开始。
2、判断分布式文件系统数据存储节点是否和Spark计算节点复用?检查点信息是否存储在本地?否,执行步骤3,是,执行步骤9。
3、读取本地环境保存的检查点信息。
4、本地检查点信息是否存在?是,执行步骤5,否则,执行步骤8。
5、尝试从本地的检查点信息恢复。
6、是否能够成功恢复?否,执行步骤7,是执行步骤11。
7、删除本地保存的检查点信息。
8、从分布式文件系统读取检查点信息。
9、绕过分布式文件系统协议,直接从其数据存放位置读取检查点信息。
10、在重试次数限制内,是否可以成功恢复?是,执行步骤11,否,执行步骤12。
11、执行器故障恢复完毕。
12、无法从检查点恢复,执行启动恢复失败。
13、结束。
图5至图7的整体操作流程也已经在前文中做了体现,因此这里不再过多赘述。
本实施例提供一种目标节点选择装置,如图8示,包括:检测模块801、获取模块802、调度模块803、评估模块804,以及确定模块805。
检测模块801,用于检测到Spark分布式作业中的执行器是否发生故障;
获取模块802,用于当检测模块801检测到Spark分布式作业中的执行器发生故障时,从预设存储位置获取与执行器对应的检查点信息;
调度模块803,用于将检查点信息调度到执行器在发生故障前运行的原始节点上,以便在原始节点上完成对执行器的启动恢复操作;
评估模块804,用于当确定原始节点上的剩余资源不足以启动恢复执行器时,对转移原始节点上的资源的代价进行评估,获取第一评估结果;以及,对分配执行器至其他节点上启动恢复的代价进行评估,获取第二评估结果;
确定模块805,用于根据第一评估结果和第二评估结果,确定对执行器执行启动恢复操作的目标节点。
在一个可选的实施方式中,检测模块801,还用于检测Spark分布式作业与分布式文件系统是否存在复用节点;
获取模块802,具体用于当确定Spark分布式作业与分布式文件系统之间存在复用节点,且与执行器对应的检查点信息位于复用节点上时,从复用节点上调用检查点信息;
或者,
当确定Spark分布式作业与分布式文件系统之间未存在复用节点,或者执行器对应的检查点信息未存储在复用节点时,检测Spark分布式作业所处的本地环境中是否存在检查点信息;
当确定本地环境中存储检查点信息时,从本地环境中读取检查点信息;
或者,
当确定Spark分布式作业与分布式文件系统之间未存在复用节点,或者执行器对应的检查点信息未存储在复用节点时,且本地环境中未存储检查点信息时,从分布式文件系统中读取检查点信息。
在一个可选的实施方式中,确定模块805,还用于当确定原始节点上的剩余资源足以启动恢复执行器,但原始节点对执行器的启动恢复操作的失败次数依然超过预设次数阈值时,直接将检查点信息转移到其他节点,并在其他节点完成对执行器的启动恢复操作。
在一个可选的实施方式中,评估模块804,具体用于获取执行器的启动时的第一消耗时间、转移原始节点中的作业的第二消耗时间、本次保存检查点信息到本地环境的第三消耗时间,以及与前一次评估对应的经过指数滑动平均算法计算得到的保存至本地环境的第四消耗时间;
根据第一消耗时间、第二消耗时间、第三消耗时间,以及第四消耗时间,确定第一评估结果。
在一个可选的实施方式中,评估模块804根据第一消耗时间、第二消耗时间、第三消耗时间,以及第四消耗时间,确定第一评估结果,具体由如下公式计算得到:
costQt=EMA(tln,costAt-1)+texecutor+costB (公式4)
其中,costQt为第一评估结果,即在本地节点恢复需要的总时间,EMA()为指数滑动平均算法,tln为第三消耗时间,costAt-1为第四消耗时间,costB为第二消耗时间。
在一个可选的实施方式中,第二消耗时间根据预设数量的待转移作业中每一个待转移作业的优先级以及重新调度预设数量的待转移作业的总调度时间确定。
在一个可选的实施方式中,第二消耗时间,根据如下公式确定:
costB=g(p1+p2+…+pn)+nt (公式5)
其中,costB为第二消耗时间,g为修正系数,p1、p2、……,pn为预设数量的待转移作业分别对应的优先级,nt为重新调度预设数量的待转移作业的总调度时间。
在一个可选的实施方式中,评估模块804,具体用于获取执行器的启动时的第一消耗时间、本次保存检查点信息到分布式文件系统的第五消耗时间、与前一次评估对应的经过指数滑动平均算法计算得到的保存至分布式文件系统的第六消耗时间,以及本次从分布式文件系统调度检查点信息的第七消耗时间;
根据第一消耗时间、第五消耗时间、第六消耗时间,以及第七消耗时间,确定第二评估结果。
在一个可选的实施方式中,评估模块804根据第一消耗时间、第五消耗时间、第六消耗时间,以及第七消耗时间,确定第二评估结果,具体由如下公式表示:
costP=EMA(trn,costCt-1)+texecutro+th (公式6)
其中,costP为第二评估结果,即将检查点信息转移到其他节点后完成执行器的启动恢复操作的总耗时,EMA()为指数滑动平均算法,trn为第五消耗时间,costCt-1为第六消耗时间,texecutor为第一消耗时间,th为第七消耗时间。
本实施例中的目标节点选择装置是以功能模块的形式来呈现,这里的模块是指专用集成电路(Application Specific Integrated Circuit,简称ASIC),执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例提供的一种目标节点选择装置,当检测到Spark分布式作业中的执行器发生故障时,从预设存储位置获取与执行器对应的检查点信息。然后将检查点信息调度到执行器发生故障前运行的原始节点上,来完成执行器的启动恢复操作。之所以将检查点信息调度到原始节点上完成执行器的启动恢复操作,是考虑到如此操作后,不需要执行Yarn传统的调度流程,减少操作步骤,提高工作效率。
但是,在某些特殊情况下,例如原始节点上的剩余资源不足以启动恢复执行器时,则可以考虑是将原始节点上的作业转移到其他节点上,以便在原始节点继续完成执行器的启动恢复操作。或者是,将执行器的检查点信息分配到其他节点上来完成执行器的启动恢复操作。具体的可以对这两种情况的执行代价进行评估,最终根据两种评估结果来确定执行器执行恢复操作的目标节点。通过该过程,其目的同样是为了尽量的提高执行器执行启动恢复操作的速度,减少时间消耗。
本发明实施例还提供一种计算机设备,具有上述图8所示的目标节点选择装置。
请参阅图9,图9是本发明可选实施例提供的一种计算机设备的结构示意图,如图9所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图9中以通过总线连接为例。
输入装置30可接收输入的数字或字符信息,以及产生与该计算机设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (12)

1.一种目标节点选择方法,其特征在于,所述方法应用于Spark分布式作业,所述Spark分布式作业分布于不同节点中,所述方法包括:
当检测到所述Spark分布式作业中的执行器发生故障时,从预设存储位置获取与所述执行器对应的检查点信息;
将所述检查点信息调度到所述执行器在发生故障前运行的原始节点上,以便在所述原始节点上完成对所述执行器的启动恢复操作;
当确定所述原始节点上的剩余资源不足以启动恢复所述执行器时,对转移所述原始节点上的资源的代价进行评估,获取第一评估结果;
以及,对分配所述执行器至其他节点上启动恢复的代价进行评估,获取第二评估结果;
根据所述第一评估结果和所述第二评估结果,确定对所述执行器执行启动恢复操作的目标节点。
2.根据权利要求1所述的方法,其特征在于,所述当检测到所述Spark分布式作业中的执行器发生故障时,从预设存储位置获取与所述执行器对应的检查点信息,具体包括:
检测所述Spark分布式作业与分布式文件系统是否存在复用节点;
当确定所述Spark分布式作业与分布式文件系统之间存在复用节点,且与所述执行器对应的检查点信息位于所述复用节点上时,从所述复用节点上调用所述检查点信息;
或者,
当确定所述Spark分布式作业与分布式文件系统之间未存在复用节点,或者所述执行器对应的检查点信息未存储在所述复用节点时,检测所述Spark分布式作业所处的本地环境中是否存在所述检查点信息;
当确定所述本地环境中存储所述检查点信息时,从所述本地环境中读取所述检查点信息;
或者,
当确定所述Spark分布式作业与分布式文件系统之间未存在复用节点,或者所述执行器对应的检查点信息未存储在所述复用节点时,且所述本地环境中未存储所述检查点信息时,从所述分布式文件系统中读取所述检查点信息。
3.根据权利要求1或2所述的方法,其特征在于,当确定所述原始节点上的剩余资源足以启动恢复所述执行器,但所述原始节点对所述执行器的启动恢复操作的失败次数依然超过预设次数阈值时,直接将所述检查点信息转移到其他节点,并在其他节点完成对所述执行器的启动恢复操作。
4.根据权利要求2所述的方法,其特征在于,当确定所述原始节点上的剩余资源不足以启动恢复所述执行器时,对转移所述原始节点上的资源的代价进行评估,获取第一评估结果,具体包括:
获取所述执行器的启动时的第一消耗时间、转移所述原始节点中的作业的第二消耗时间、本次保存检查点信息到所述本地环境的第三消耗时间,以及与前一次评估对应的经过指数滑动平均算法计算得到的保存至所述本地环境的第四消耗时间;
根据所述第一消耗时间、所述第二消耗时间、所述第三消耗时间,以及所述第四消耗时间,确定所述第一评估结果。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一消耗时间、所述第二消耗时间、所述第三消耗时间,以及所述第四消耗时间,确定所述第一评估结果,具体由如下公式计算得到:
costQt=EMA(tln,costAt-1)+texecutor+costB
其中,costQt为所述第一评估结果,即在本地节点恢复需要的总时间,EMA()为指数滑动平均算法,tln为所述第三消耗时间,costAt-1为所述第四消耗时间,costB为所述第二消耗时间。
6.根据权利要求5所述的方法,其特征在于,所述第二消耗时间根据预设数量的待转移作业中每一个所述待转移作业的优先级以及重新调度所述预设数量的待转移作业的总调度时间确定。
7.根据权利要求6所述的方法,其特征在于,所述第二消耗时间,根据如下公式确定:
costB=g(p1+p2+…+pn)+nt
其中,costB为所述第二消耗时间,g为修正系数,p1、p2、……,pn为预设数量的待转移作业分别对应的优先级,nt为重新调度所述预设数量的待转移作业的总调度时间。
8.根据权利要求2或4-7任一项所述的方法,其特征在于,对分配所述执行器至其他节点上启动恢复的代价进行评估,获取第二评估结果,具体包括:
获取所述执行器的启动时的第一消耗时间、本次保存检查点信息到所述分布式文件系统的第五消耗时间、与前一次评估对应的经过指数滑动平均算法计算得到的保存至所述分布式文件系统的第六消耗时间,以及本次从所述分布式文件系统调度所述检查点信息的第七消耗时间;
根据所述第一消耗时间、所述第五消耗时间、所述第六消耗时间,以及所述第七消耗时间,确定所述第二评估结果。
9.根据权利要求8所述的方法,其特征在于,所述根据所述第一消耗时间、所述第五消耗时间、所述第六消耗时间,以及所述第七消耗时间,确定所述第二评估结果,具体由如下公式表示:
costP=EMA(trn,costCt-1)+texecutor+th
其中,costP为所述第二评估结果,即将所述检查点信息转移到其他节点后完成所述执行器的启动恢复操作的总耗时,EMA()为指数滑动平均算法,trn为所述第五消耗时间,costCt-1为所述第六消耗时间,texecutor为所述第一消耗时间,th为所述第七消耗时间。
10.一种目标节点选择装置,其特征在于,所述装置包括:
检测模块,用于检测到Spark分布式作业中的执行器是否发生故障;
获取模块,用于当所述检测模块检测到所述Spark分布式作业中的执行器发生故障时,从预设存储位置获取与所述执行器对应的检查点信息;
调度模块,用于将所述检查点信息调度到所述执行器在发生故障前运行的原始节点上,以便在所述原始节点上完成对所述执行器的启动恢复操作;
评估模块,用于当确定所述原始节点上的剩余资源不足以启动恢复所述执行器时,对转移所述原始节点上的资源的代价进行评估,获取第一评估结果;以及,对分配所述执行器至其他节点上启动恢复的代价进行评估,获取第二评估结果;
确定模块,用于根据所述第一评估结果和所述第二评估结果,确定对所述执行器执行启动恢复操作的目标节点。
11.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至9中任一项所述的目标节点选择方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至9中任一项所述的目标节点选择方法。
CN202311044921.3A 2023-08-18 2023-08-18 目标节点选择方法、装置、计算机设备及介质 Pending CN117081908A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311044921.3A CN117081908A (zh) 2023-08-18 2023-08-18 目标节点选择方法、装置、计算机设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311044921.3A CN117081908A (zh) 2023-08-18 2023-08-18 目标节点选择方法、装置、计算机设备及介质

Publications (1)

Publication Number Publication Date
CN117081908A true CN117081908A (zh) 2023-11-17

Family

ID=88712769

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311044921.3A Pending CN117081908A (zh) 2023-08-18 2023-08-18 目标节点选择方法、装置、计算机设备及介质

Country Status (1)

Country Link
CN (1) CN117081908A (zh)

Similar Documents

Publication Publication Date Title
JP6219512B2 (ja) 仮想ハドゥープマネジャ
CN108733509B (zh) 用于在集群系统中备份和恢复数据的方法和系统
US8413144B1 (en) Providing application-aware high availability of virtual machines
US9335998B2 (en) Multi-core processor system, monitoring control method, and computer product
CN102789305B (zh) 推迟挂起
US9483314B2 (en) Systems and methods for fault tolerant batch processing in a virtual environment
CA2861257C (en) Fault tolerance for complex distributed computing operations
US20120304184A1 (en) Multi-core processor system, computer product, and control method
KR20140034246A (ko) 새로운 애플리케이션을 위한 메모리 관리 모델 및 인터페이스
KR20140033448A (ko) 수정되지 않은 애플리케이션을 위한 메모리 관리 모델 및 인터페이스
US20220179472A1 (en) Managing ephemeral storage on a computing node
CN114461335A (zh) 云计算环境虚拟机和容器弹性伸缩方法、装置及设备
US20130326528A1 (en) Resource starvation management in a computer system
CN111538585A (zh) 一种基于node.js的服务器进程调度方法、系统和装置
US20100085871A1 (en) Resource leak recovery in a multi-node computer system
Altameem Fault tolerance techniques in grid computing systems
CN117081908A (zh) 目标节点选择方法、装置、计算机设备及介质
JP5672521B2 (ja) コンピュータシステム、およびそのチェックポイントリスタート方法
CN116483546A (zh) 分布式训练任务调度方法、装置、设备及存储介质
CN105589787A (zh) 应用程序的健康检查方法及健康检查系统
CN115422010A (zh) 数据集群中的节点管理方法、装置及存储介质
US20130318310A1 (en) Processor processing method and processor system
CN111090627B (zh) 基于池化的日志存储方法、装置、计算机设备及存储介质
CN106708656B (zh) 用户操作的恢复方法和装置
CN104516778A (zh) 一种多任务环境下进程检查点的保存与恢复系统及方法

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