spark任务运行时driver端或executor端性能诊断方法技术

技术编号:37544987 阅读:13 留言:0更新日期:2023-05-12 16:16
本发明专利技术涉及spark任务运行时driver端或executor端性能诊断方法。该方法通过获取诊断请求;其中所述诊断请求为用户端向预设的多个driver端发送的;所述诊断请求用于为目标driver端和目标executor端请求性能诊断,一个driver端对应多个executor端;基于所述诊断请求调用所述restful接口生成诊断命令;将所述诊断命令配置分发至当前driver端对应的多个executor端;基于所述诊断命令,判断当前driver端是否为目标driver端,若是基于所述诊断命令进行诊断;所述诊断命令,还用于供executor端判断自身是否为目标executor端,若是基于所述诊断命令进行诊断,以解决spark任务在运行时对driver端或executor端的性能诊断困难的问题。断困难的问题。断困难的问题。

【技术实现步骤摘要】
spark任务运行时driver端或executor端性能诊断方法


[0001]本专利技术涉及大数据应用
,具体涉及spark任务运行时driver端或executor端性能诊断方法。

技术介绍

[0002]Apache spark是专为大规模数据处理而设计的快速通用的计算引擎,是分布式的大数据计算引擎,通常用于进行离线计算与实时计算。spark任务在运行时是以jvm进程形式存在的,JVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
[0003]因此对spark的driver端与executor端的性能诊断传统的方法是使用如jdk(jdk是整个Java开发的核心,它包含了Java的运行环境)自带的jConsole、jmap、jstack或阿里开源的arthas等诊断工具。而这些诊断工具是为诊断某一进程实例去设计的,对于spark这种分布式的计算引擎来说,诊断起来十分困难,需要确定所要诊断的进程所在的服务器ip,然后登录到对应的服务器上查找对应的进程编号,最后再使用上述传统jvm诊断工具去诊断。
[0004]spark作为分布式大数据计算引擎,有着分布式计算的特点,这就导致分析每个节点上的运行实例(driver端或executor端)比较困难。通常要先确定待诊断的driver端或executor端所在的服务器ip,登录到该服务器以后,还要进一步确定该driver端或executor端对应的运行时的进程号,最后再使用jvm诊断工具去诊断。这种传统的诊断方式用于诊断spark这种分布式大数据计算引擎,显得非常麻烦。

技术实现思路

[0005]有鉴于此,本专利技术的目的在于提供一种服务器交付方法及装置,以解决现有技术中针对spark这种分布式的计算引擎,spark任务在运行时对driver端或executor端的性能诊断困难的问题。
[0006]根据本专利技术实施例的第一方面,spark任务运行时driver端或executor端性能诊断方法,应用于预设多个driver端中的每一个driver端中,包括:
[0007]获取诊断请求;其中所述诊断请求为用户端向预设的多个driver端发送的;所述driver端内置restful接口,所述诊断请求用于为目标driver端和目标executor端请求性能诊断,一个driver端对应多个executor端;
[0008]基于所述诊断请求调用所述restful接口生成诊断命令;
[0009]将所述诊断命令配置分发至当前driver端对应的多个executor端;
[0010]基于所述诊断命令,判断当前driver端是否为目标driver端,若是基于所述诊断命令进行诊断;所述诊断命令,还用于供executor端判断自身是否为目标executor端,若是基于所述诊断命令进行诊断。
[0011]进一步的,所述判断当前driver端是否为目标driver端,包括:
[0012]获取当前driver端所在服务器的ip和目标driver端所在服务器的ip;
[0013]判断当前driver端所在服务器的ip和目标driver端所在服务器的ip是否一致,若一致,确定当前driver端为目标driver端。
[0014]进一步的,executor端判断自身是否为目标executor端,包括:
[0015]executor端获取自身所在服务器的ip及编号和目标executor端所在服务器的ip及编号;
[0016]executor端判断自身所在服务器的ip及编号和目标executor端所在服务器的ip及编号是否一致,若一致,确定executor端为目标executor端。
[0017]进一步的,所述将所述诊断命令配置分发至当前driver端对应的多个executor端,包括:
[0018]通过spark广播的方式将所述诊断命令配置分发至当前driver端对应的多个executor端。
[0019]进一步的,包括:
[0020]所述多个driver端或executor端均内置定时线程;
[0021]所述driver端用于基于所述定时线程轮询查看是否生成诊断命令;若生成,则执行步骤“将所述诊断命令配置分发至当前driver端对应的多个executor端”;
[0022]所述executor端用于基于所述定时线程轮询查看是否接收诊断命令;若接收,则执行步骤“将所述诊断命令配置分发至当前driver端对应的多个executor端”。
[0023]进一步的,所述诊断命令包括用于启动arthas诊断服务的第一指令或用于停止arthas诊断服务的第二指令。
[0024]进一步的,所述诊断命令包括启动arthas诊断服务,相对应的,基于所述启动arthas诊断服务,诊断命令进行诊断包括:
[0025]基于所述第一指令启动arthas诊断服务,所述当前driver端将预先集成好的所述arthas诊断服务启动起来,并向预先设定好的arthas tunnel server服务进行注册,通过tunnel server web页面对当前driver端或当前executor端进行在线性能诊断。
[0026]根据本专利技术实施例的第二方面,一种运行时spark的driver端或executor端的性能诊断装置,包括:
[0027]获取模块,用于获取诊断请求;其中所述诊断请求为用户端向预设的多个driver端发送的;所述driver端内置restful接口,所述诊断请求用于为目标driver端和目标executor端请求性能诊断,一个driver端对应多个executor端;
[0028]生成模块,用于基于所述诊断请求调用所述restful接口生成诊断命令;
[0029]配置模块,用于将所述诊断命令配置分发至当前driver端对应的多个executor端;
[0030]判断诊断模块,用于基于所述诊断命令,判断当前driver端是否为目标driver端,若是基于所述诊断命令进行诊断;所述诊断命令,还用于供executor端判断自身是否为目标executor端,若是基于所述诊断命令进行诊断。
[0031]本专利技术的实施例提供的技术方案可以包括以下有益效果:
[0032]本专利技术通过用户端将想要诊断的某个driver端或executor端作为目标driver端
或目标executor端,发送所述目标driver端或目标executor端的诊断请求给预设多个driver端中的每一个driver端,driver端基于诊断请求生成诊断命令,并配置分发给当前driver端对应的多个executor端,当前driver端和对应的多个executor端自行判断自身是否为目标driver端或目标executor端,若是本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.spark任务运行时driver端或executor端性能诊断方法,其特征在于,应用于预设多个driver端中的每一个driver端中,包括:获取诊断请求;其中所述诊断请求为用户端向预设的多个driver端发送的;所述driver端内置restful接口,所述诊断请求用于为目标driver端和目标executor端请求性能诊断,一个driver端对应多个executor端;基于所述诊断请求调用所述restful接口生成诊断命令;将所述诊断命令配置分发至当前driver端对应的多个executor端;基于所述诊断命令,判断当前driver端是否为目标driver端,若是基于所述诊断命令进行诊断;所述诊断命令,还用于供executor端判断自身是否为目标executor端,若是基于所述诊断命令进行诊断。2.根据权利要求1所述的方法,所述判断当前driver端是否为目标driver端,包括:获取当前driver端所在服务器的ip和目标driver端所在服务器的ip;判断当前driver端所在服务器的ip和目标driver端所在服务器的ip是否一致,若一致,确定当前driver端为目标driver端。3.根据权利要求1所述的方法,其特征在于,executor端判断自身是否为目标executor端,包括:executor端获取自身所在服务器的ip及编号和目标executor端所在服务器的ip及编号;executor端判断自身所在服务器的ip及编号和目标executor端所在服务器的ip及编号是否一致,若一致,确定executor端为目标executor端。4.根据权利要求1所述的方法,其特征在于,所述将所述诊断命令配置分发至当前driver端对应的多个executor端,包括:通过spark广播的方式将所述诊断命令配置分发至当前driver端对应的多个executor端。5.根据权利要求1所述的方法,其特征在于,包括:所述多个driver端或exe...

【专利技术属性】
技术研发人员:王成龙
申请(专利权)人:上海中通吉网络技术有限公司
类型:发明
国别省市:

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

1