异常调试方法、分布式系统及电子设备技术方案

技术编号:37707787 阅读:12 留言:0更新日期:2023-06-01 23:57
本申请提供了一种异常调试方法、分布式系统及电子设备,涉及云计算技术领域,该方法包括:响应于异常调试指令,在异常调试指令对应的分布式系统中的子节点执行的数据处理任务中插入暂停任务;获取暂停任务对应的执行上下文信息,并将执行上下文信息提供给用户,执行上下文信息用于用户对插入暂停任务的数据处理任务中出现的异常进行定位。本实施例中,分布式系统中的主节点在数据处理任务中插入暂停任务,获取暂停任务对应的执行上下文信息用于进行异常定位,不需要进行大量的日志清洗和打包,即可以辅助用户进行异常定位,减少了工作量,节省了计算资源。节省了计算资源。节省了计算资源。

【技术实现步骤摘要】
异常调试方法、分布式系统及电子设备


[0001]本申请涉及云计算
,尤其涉及一种异常调试方法、分布式系统及电子设备。

技术介绍

[0002]随着计算技术的发展,有些数据处理任务需要非常巨大的计算能力才能完成,如果采用集中式计算,需要耗费相当长的时间。分布式计算将该数据处理任务分解成许多小的部分,分配给多台计算机进行处理。这样可以节约整体计算时间,大大提高计算效率。
[0003]分布式计算中的执行节点在执行数据处理任务时,如果执行函数报错,需要对错误进行定位,则必须对数据处理任务的日志进行清洗,或者反复打包日志,增加了清洗日志的工作量和打包日志的计算成本。

技术实现思路

[0004]本申请实施例提供了一种异常调试方法、分布式系统及电子设备,以解决分布式系统中错误定位工作量大,计算成本高的问题。
[0005]第一方面,本申请实施例提供了一种异常调试方法,方法应主节点,包括:
[0006]响应于异常调试指令,在异常调试指令对应的分布式系统中的子节点执行的数据处理任务中插入暂停任务;
[0007]获取暂停任务对应的执行上下文信息,并将执行上下文信息提供给用户,执行上下文信息用于用户对插入暂停任务的数据处理任务中出现的异常进行定位。
[0008]第二方面,本申请实施例提供了一种异常调试方法,方法应子节点,包括:
[0009]执行分布式系统中的主节点分配的数据处理任务和在数据处理任务中插入的暂停任务,以使主节点获取暂停任务对应的执行上下文信息,并将执行上下文信息提供给用户,执行上下文信息用于用户对插入暂停任务的数据处理任务中出现的异常进行定位。
[0010]第三方面,本申请实施例提供了一种分布式系统,包括主节点和子节点,主节点和子节点执行上述任一项所述的方法。
[0011]第四方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,处理器在执行所述计算机程序时实现上述任一项所述的方法。
[0012]第五方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法。
[0013]与现有技术相比,本申请具有如下优点:
[0014]本申请提供了一种异常调试方法、分布式系统及电子设备,响应于异常调试指令,在异常调试指令对应的分布式系统中的子节点执行的数据处理任务中插入暂停任务;获取暂停任务对应的执行上下文信息,并将执行上下文信息提供给用户,执行上下文信息用于用户对插入暂停任务的数据处理任务中出现的异常进行定位。本实施例中,分布式系统中的主节点在数据处理任务中插入暂停任务,获取暂停任务对应的执行上下文信息用于进行
异常定位,不需要进行大量的日志清洗和打包,即可以辅助用户进行异常定位,减少了工作量,节省了计算资源。
[0015]上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,可依照说明书的内容予以实施,并且为了让本申请的上述和其他目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
[0016]在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请的一些实施方式,而不应将其视为是对本申请范围的限制。
[0017]图1为本申请提供的异常调试方法的一个应用场景示意图;
[0018]图2为本申请一实施例的异常调试方法的流程图;
[0019]图3为本申请一实施例的异常调试方法的示意图;
[0020]图4为本申请一实施例的基于Actor模型的Spark计算任务分发的示意图;
[0021]图5为本申请一实施例的Driver和Executor的交互过程的示意图;
[0022]图6为本申请一实施例的异常调试方法的流程图;
[0023]图7为本申请一实施例的异常调试装置的结构框图;
[0024]图8为本申请一实施例的异常调试装置的结构框图;以及
[0025]图9为用来实现本申请实施例的电子设备的框图。
具体实施方式
[0026]在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的构思或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的,而非限制性的。
[0027]为便于理解本申请实施例的技术方案,以下对本申请实施例的相关技术进行说明。以下相关技术作为可选方案与本申请实施例的技术方案可以进行任意结合,其均属于本申请实施例的保护范围。
[0028]图1为本申请提供的异常调试方法的一个应用场景示意图。如图1所示,分布式系统包括主节点Driver和多个子节点Executor,主节点为中心协调节点,对子节点进行协调控制,子节点为执行节点,执行主节点分配的数据处理任务。主节点、子节点和子节点的守护进程可以通过虚拟机的形式实现,例如,JAVA虚拟机JVM。主节点和各子节点之间的数据交互过程相同,本实施例中以主节点和一个子节点之间的数据交互过程为例进行介绍。本实施例中的方法可以通过分布式计算引擎来实现,例如,Apache Spark。分布式计算引擎可以利用分布式计算模型进行分布式计算,分布式计算模型可以包括Actor模型。
[0029]通过交互式计算应用程序(如图中所示的NOTEBOOK)提供用户交互界面,当程序出错时,或者开发人员要求对程序运行情况随机抽样时(例如,程序开发阶段跟踪程序的执行情况;或者对于重要数据的抽取、转换和加载进行实时随机抽样观察,避免处理结果混入不符合预期的数据),Driver通过用户交互界面接收用户输入的异常调试指令,Driver向容器集群管理系统的接口服务发送请求,接口服务创建Executor和Executor的守护进程Booter
的容器组POD,一个Pod(容器组)包含了一个应用程序容器(某些情况下是多个容器)、存储资源、一个唯一的网络IP地址、以及一些确定容器该如何运行的选项。Executor和Booter基于容器组提供的资源进行数据处理。Booter可以和Driver通信,Booter可以监测到对应的Executor所在的JVM是否进入了需要错误调试的状态,以及需要错误调试的数据对应的数据处理任务被分配带了哪个任务槽执行。Driver在异常调试指令对应的Executor执行的数据处理任务中插入暂停任务PAUSE TASK,并发出一个信号发到守护进程Booter,通知Booter开启JVM堆栈和性能实时查看工具(例如,Arthas),Arthas持续探测PAUSE TASK发出的信号,获取PAUSE TASK对应的执行上下文信息,如图中所示的堆栈信息和火焰图,并发送给Driver,Driver将堆栈信息和火焰图向开发人员进行展示,辅助开发人员对插入暂停任务的数据处理任务中出现的异常进行定位,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种异常调试方法,其特征在于,所述方法应用于分布式系统的主节点,所述方法包括:响应于异常调试指令,在所述异常调试指令对应的所述分布式系统中的子节点执行的数据处理任务中插入暂停任务;获取所述暂停任务对应的执行上下文信息,并将所述执行上下文信息提供给用户,所述执行上下文信息用于所述用户对插入暂停任务的数据处理任务中出现的异常进行定位。2.根据权利要求1所述的方法,其特征在于,所述数据处理任务包括多个子任务,所述在所述异常调试指令对应的所述分布式系统中的子节点执行的数据处理任务中插入暂停任务,包括:在所述异常调试指令对应的数据处理任务的多个子任务后面分别插入所述暂停任务。3.根据权利要求2所述的方法,其特征在于,所述获取所述暂停任务对应的执行上下文信息,包括:获取所述暂停任务对应的数据处理任务的多个子任务分别对应的执行上下文信息;所述执行上下文信息包括执行所述数据处理任务的堆栈信息或执行性能中的至少一项。4.根据权利要求1所述的方法,其特征在于,所述获取所述暂停任务对应的执行上下文信息,包括:利用所述子节点的守护进程获取所述暂停任务插入的数据处理任务的执行上下文信息。5.根据权利要求2所述的方法,其特征在于,在所述异常调试指令对应的所述分布式系统中的子节点执行的数据处理任务中插入暂停任务之后,所述方法还包括:接收所述子节点发送的重复执行前一子任务或者继续执行下一子任务的询问请求;在接收到用户输入的所述询问请求对应的操作指令后,将所述操作指令发送至所述子节点。6.根据权利要求1

5任一项所述的方法,其特征在于,在响应于异常调试指令,在所述异常调试指令对应的所述分布式系统中的子节点执行的数据处理任务中插入暂停任务之前,...

【专利技术属性】
技术研发人员:宫勐
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1