基于Spark调度任务的慢任务分析方法和装置制造方法及图纸

技术编号:32884190 阅读:24 留言:0更新日期:2022-04-02 12:18
本发明专利技术涉及一种基于Spark调度任务的慢任务分析方法、装置及计算机可读介质。方法包括:将任务阶段划分为多个区段,将每个所述区段划分为多个子过程,预定义每个所述子过程对应的慢查询原因;Spark程序运行多个任务,每个所述任务包括多个所述任务阶段;获取每个所述子过程的执行时长,根据所述子过程的执行时长判断所述子过程是否为异常子过程;以及统计所述多个异常子过程的慢查询原因,将出现次数最多的慢查询原因定义为共性慢查询原因。本发明专利技术通过预定义子过程对应的慢查询原因,使程序可以自动分析批量任务的慢查询原因;通过对慢查询原因的次数做排序,可以快速定位到批量任务的慢查询原因。查询原因。查询原因。

【技术实现步骤摘要】
基于Spark调度任务的慢任务分析方法和装置


[0001]本专利技术主要涉及大数据应用性能分析领域,具体地涉及一种基于Spark调度任务的慢任务分析方法、装置及计算机可读介质。

技术介绍

[0002]随着大数据的兴起,为了解决大数据计算困难,大数据领域出现Spark计算框架,该框架基于弹性分布式计算的思想,将计算数据放在内存中迭代,大量减少中间计算结果的落盘,从而减少了运行的时间,提高计算性能。目前Spark已成为企业数据计算的基石。
[0003]Spark计算框架在运行过程中,为了能很好的监控相关性能问题,会将任务(job)计算运行过程中记录下来,提供用户查看和监控,当程序运行缓慢时,通常的做法是取某个特别慢的job,然后在该慢的job抽取几个任务阶段(stage)进行分析,进一步估计慢的原因。但由于挑取一个或几个job分析掺杂太多人工经验,对于一些对Spark框架不清楚内部原理或经验不丰富的工程师来讲,常常因为个人经验的不足误判导致判断的失误。尽管可以从Spark提供job中分析单个job慢的原因,但当技术人员运行一批sql程序,成千上百个job都很慢时,无法在短时间内快速、全面的定位到慢的性能问题。
[0004]因此,亟需一种能从自动从多个异常任务中快速定位慢查询原因的方法。

技术实现思路

[0005]本专利技术所要解决的技术问题是提供一种基于Spark调度任务的慢任务分析方法、装置及计算机可读介质,解决多个任务时无法快速定位慢查询原因的问题。
[0006]为了解决上述技术问题,本专利技术提供一种基于Spark调度任务的慢任务分析方法,包括:将任务阶段划分为多个区段,将每个所述区段划分为多个子过程,预定义每个所述子过程对应的慢查询原因;Spark程序运行多个任务,每个所述任务包括多个所述任务阶段;获取每个所述子过程的执行时长,根据所述子过程的执行时长判断所述子过程是否为异常子过程;以及统计所述多个异常子过程的慢查询原因,将出现次数最多的慢查询原因定义为共性慢查询原因。
[0007]在本专利技术的一实施例中,方法还包括:所述Spark程序在每个所述子过程中置入计时器,所述计时器用于记录所述子过程的开始时刻和结束时刻,根据所述开始时刻和所述结束时刻计算所述子过程的执行时长。
[0008]在本专利技术的一实施例中,方法还包括:所述Spark程序通过接口程序获取所述多个任务的日志数据,所述日志数据中包括每个所述任务的执行时长、每个所述任务阶段的执行时长和每个所述子过程的执行时长。
[0009]在本专利技术的一实施例中,根据所述子过程的执行时长判断所述子过程是否为异常子过程的步骤包括:计算所述子过程的执行时长的离群值,所述离群值用于表示所述执行时长在多个子过程的执行时长中偏离均值的程度,当所述离群值大于预设阈值时,判断所述子过程为异常子过程。
[0010]在本专利技术的一实施例中,根据所述子过程的执行时长判断所述子过程是否为异常子过程的步骤包括,根据下面的公式判断:
[0011]│
x

μ

>3σ
[0012]其中,x表示所述执行时长的样本,μ表示所述执行时长的均值,σ表示所述执行时长的标准差,当所述样本x与所述均值μ之差的绝对值大于标准差的3倍3σ时,判断所述样本对应的子过程为异常子过程。
[0013]在本专利技术的一实施例中,还包括:获取每个所述任务的执行时长,根据所述任务的执行时长判断所述任务是否为异常任务,其中,获取每个所述子过程的执行时长的步骤包括:所述子过程属于所述异常任务。
[0014]在本专利技术的一实施例中,还包括:获取每个所述任务阶段的执行时长,根据所述任务阶段的执行时长判断所述任务阶段是否为异常任务阶段,其中,获取每个所述子过程的执行时长的步骤包括:所述子过程属于所述异常任务阶段。
[0015]在本专利技术的一实施例中,根据所述执行时长判断所述子过程是否为异常子过程的步骤还包括:提取所述异常子过程的慢查询原因;根据所述慢查询原因出现的次数进行排序。
[0016]在本专利技术的一实施例中,所述区段包括读数据源区段、执行区段、写任务区段中的一个或任意个组合。
[0017]在本专利技术的一实施例中,所述读数据源区段的子过程包括准备分区、拉取数据中的一个或任意个组合,所述执行区段的子过程包括左连接查询、右连接查询、内关联查询中的一个或任意个组合,所述写任务区段的子过程包括写HDFS、写MySql中的一个或任意个组合。
[0018]为了解决上述技术问题,本专利技术提供一种基于Spark调度任务的慢任务分析装置,包括:存储器,用于存储可由处理器执行的指令;处理器,用于执行所述指令以实现如上所述的基于Spark调度任务的慢任务分析方法。
[0019]为了解决上述技术问题,本专利技术提供一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如上所述的基于Spark调度任务的慢任务分析方法。
[0020]本专利技术的技术方案通过将任务阶段划分为区段和子过程,然后预定义子过程对应的慢查询原因,使程序可以自动分析批量任务的慢查询原因;本专利技术通过对慢查询原因的次数做排序,将出现次数最多的慢查询原因定义为共性慢查询原因,可以快速定位到批量任务的慢查询原因。
附图说明
[0021]为让本专利技术的上述目的、特征和优点能更明显易懂,以下结合附图对本专利技术的具体实施方式作详细说明,其中:
[0022]图1是根据本专利技术一实施例的基于Spark调度任务的慢任务分析方法的示例性流程图;
[0023]图2是根据本专利技术一实施例的基于Spark调度任务的慢任务分析方法的子过程预定义图;
[0024]图3是根据本专利技术一实施例的定位异常任务的执行原理图;
[0025]图4是根据本专利技术一实施例的定位异常任务阶段的执行原理图;
[0026]图5是根据本专利技术一实施例的根据子过程查找慢查询原因的原理图;
[0027]图6是根据本专利技术一实施例的基于Spark的批量任务处理装置的系统框图。
具体实施方式
[0028]为让本专利技术的上述目的、特征和优点能更明显易懂,以下结合附图对本专利技术的具体实施方式作详细说明。
[0029]在下面的描述中阐述了很多具体细节以便于充分理解本专利技术,但是本专利技术还可以采用其它不同于在此描述的其它方式来实施,因此本专利技术不受下面公开的具体实施例的限制。
[0030]如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
[0031]除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Spark调度任务的慢任务分析方法,包括:将任务阶段划分为多个区段,将每个所述区段划分为多个子过程,预定义每个所述子过程对应的慢查询原因;Spark程序运行多个任务,每个所述任务包括多个所述任务阶段;获取每个所述子过程的执行时长,根据所述子过程的执行时长判断所述子过程是否为异常子过程;以及统计所述多个异常子过程的慢查询原因,将出现次数最多的慢查询原因定义为共性慢查询原因。2.如权利要求1所述的慢任务分析方法,其特征在于,还包括:所述Spark程序在每个所述子过程中置入计时器,所述计时器用于记录所述子过程的开始时刻和结束时刻,根据所述开始时刻和所述结束时刻计算所述子过程的执行时长。3.如权利要求1所述的慢任务分析方法,其特征在于,还包括:所述Spark程序通过接口程序获取所述多个任务的日志数据,所述日志数据中包括每个所述任务的执行时长、每个所述任务阶段的执行时长和每个所述子过程的执行时长。4.如权利要求1所述的慢任务分析方法,其特征在于,根据所述子过程的执行时长判断所述子过程是否为异常子过程的步骤包括:计算所述子过程的执行时长的离群值,所述离群值用于表示所述执行时长在多个子过程的执行时长中偏离均值的程度,当所述离群值大于预设阈值时,判断所述子过程为异常子过程。5.如权利要求4所述的慢任务分析方法,其特征在于,根据所述子过程的执行时长判断所述子过程是否为异常子过程的步骤包括,根据下面的公式判断:

x

μ

>3σ其中,x表示所述执行时长的样本,μ表示所述执行时长的均值,σ表示所述执行时长的标准差,当所述样本x与所述均值μ之...

【专利技术属性】
技术研发人员:戴橙陈诚王仕凯
申请(专利权)人:浙江太美医疗科技股份有限公司
类型:发明
国别省市:

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

1