【技术实现步骤摘要】
一种任务执行方法和装置
[0001]本专利技术涉及计算机
,尤其涉及一种任务执行方法和装置。
技术介绍
[0002]随着大数据技术的发展,以及业务对实时性要求的提高,越来越多的企业开始利用实时计算来支撑内部业务。Flink作为流式计算引擎,广泛地被用于实际的生产实践中。同时随着容器化技术的发展,越来越多的应用通过容器化部署。Flink集群也常见于容器化部署,在实际的生产中常常运行在Kubernetes(K8s)上。然而在实际使用过程中,用户常常在同一集群上同时部署多个任务。在现有方案中,多个任务混合部署,只做到了slot(槽位)级别资源隔离,同一个TaskManager(任务执行节点)上往往有多个任务的子任务在同时运行,当其中一个任务出现异常导致TaskManager异常时,会使在该TaskManager上运行的所有任务都出现异常,任务之间互相影响。
技术实现思路
[0003]有鉴于此,本专利技术实施例提供一种任务执行方法和装置,能够使得多任务混合部署时实现在TaskManager级别的资源隔离,Job(任务)独享所占用的TaskManager,避免任务出现异常时互相影响,并且用户可以以slot数量预估值作为参考指定job运行时所需资源数。
[0004]为实现上述目的,根据本专利技术实施例的一个方面,提供了一种任务执行方法。
[0005]一种任务执行方法,包括:根据目标任务运行时的最大占用槽位数量以及每个任务执行节点提供的槽位数量,计算所述目标任务需要独占的任务执行节点数量,其中 ...
【技术保护点】
【技术特征摘要】
1.一种任务执行方法,其特征在于,包括:根据目标任务运行时的最大占用槽位数量以及每个任务执行节点提供的槽位数量,计算所述目标任务需要独占的任务执行节点数量,其中,槽位用于执行任务;若所述目标任务当前已独占的任务执行节点数量未达到所述目标任务需要独占的任务执行节点数量,则根据所述目标任务需要独占的任务执行节点数量与所述目标任务当前已独占的任务执行节点数量的差值,从未被任何任务独占的任务执行节点中查找所述目标任务可独占的任务执行节点,并将所述可独占的任务执行节点标记为被所述目标任务独占;在所述目标任务独占的所有任务执行节点中查找槽位以执行所述目标任务,所述目标任务独占的所有任务执行节点包括所述目标任务当前已独占的任务执行节点和所述可独占的任务执行节点。2.根据权利要求1所述的方法,其特征在于,所述目标任务部署在Flink集群中;所述计算所述目标任务需要独占的任务执行节点数量之前,包括:计算所述目标任务的槽位最大预估值和槽位最小预估值,所述槽位最大预估值等于所述目标任务对应的流式执行区域中所有槽位共享组中最大并行度的和,所述目标任务对应的流式执行区域是所述目标任务的数据流图中子任务节点所属的流式执行区域;所述槽位最小预估值等于所述目标任务对应的各流式执行区域所需的槽位数量之中的最大值;根据所述目标任务的槽位最大预估值和槽位最小预估值以及用户指定的初始槽位数量,按照预设规则确定所述目标任务运行时的最大占用槽位数量。3.根据权利要求2所述的方法,其特征在于,所述按照预设规则确定所述目标任务运行时的最大占用槽位数量,包括:如果所述用户指定的初始槽位数量小于所述槽位最小预估值,则以所述槽位最小预估值作为所述目标任务运行时的最大占用槽位数量;如果所述用户指定的初始槽位数量大于所述槽位最大预估值,则以所述槽位最大预估值作为所述目标任务运行时的最大占用槽位数量;如果所述用户指定的初始槽位数量大于或等于所述槽位最小预估值且小于或等于所述槽位最大预估值,则以所述用户指定的初始槽位数量作为所述目标任务运行时的最大占用槽位数量。4.根据权利要求2所述的方法,其特征在于,所述从未被任何任务独占的任务执行节点中查找所述目标任务可独占的任务执行节点,并将所述可独占的任务执行节点标记为被所述目标任务独占,包括:Flink集群中的资源管理器从已注册到所述资源管理器的任务执行节点中寻找未被任何任务独占的任务执行节点,并标记为被所述目标任务独占,所述资源管理器中注册有任务和该任务运行时的最大占用槽位数量,以及该任务与该任务当前已独占的任务执行节点之间的映射关系。5.根据权利要求2所述的方法,其特征在于,若所述目标任务执行成功或执行过程中出现异常,则释放所述目标任务独占的所有任务执行节点。6.根据权利要求5所述的方法,其特征在于,若所述目标任务执行过程中所述Flink集群的集群管理器出现异常,则所述释放所述目标任务独占的所有任务执行节点之后,还包
括:所述Flink集群中资源管理器与任务协调器失去连接后,清理所述目标任务与独占的所有任务执行节点之间的绑定关系。7.根据权利要求5所述的方法,其特征在于,若所述目标任务执行过程中所述Flink集群的资源管理器出现异常,所述方法还包括:所述目标任务独占的任务执行节点向所述Flink集群中新的资源管理器注册,所述新的资源管理器根据所述目标任务独占的任务执行节点发送的槽位报告重建所述目标任务与所独占的任务执行节点之间的映射关系。8.根据权利要求7所述的方法,其特征在于,所述目标任务独占的任务执行节点向所述Flink集群中新的资源管理器注册成功之后,所述方法还包括:所述目标任务独占的任务执行节点主动与所述新的资源管理器建立连接,并调用槽位管理器实现类的用于注册槽位信息的方法,注册所述目标任务独占的任务执行节点的槽位信息。9.根据权利要求5所述的方法,其特征在于,若所述目标任务执行过程中所述目标任务独占的任务执行节点出现异常,所述方法还包括:所述Flink集群中的资源管理器解除与出现异常的任务执行节点的绑定关系。10.一种任务执行装置,其特征在于,包括:任务执行节点数量计算模块,用于根据目标任务运行时的最大占用槽位数量以及每个任务执行节点提供的槽位数量,计算所述目标任务需要独占的任务执行节点数量,其中,槽位用于执行任务;任务执行节点标记模块...
【专利技术属性】
技术研发人员:裴周宇,付海涛,
申请(专利权)人:北京京东世纪贸易有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。