本申请涉及大数据分析,特别是涉及一种内存占用量监测方法及相关装置、电子设备和存储介质。
背景技术:
1、spark是一种为处理大规模数据而设计的通用计算引擎,并且在其运算的中间输出结果可以缓存在内存中,从而不需要读写hdfs,因此spark在拥有hadoop mapreduce所有优势的同时,还能以更快的速度计算出结果,因此被广泛运用于面向大规模数据的数据挖掘、机器学习应用中。
2、目前,pyspark在执行udf(user defined function,用户自定义函数)过程中的内存占用对于spark用户来说是透明的,因此没有途径进行监测、评估python udf执行过程中的内存占用,因此无法设置合理的spark执行器内存,从而导致任务内存溢出或造成内存浪费。有鉴于此,如何提高获取内存占用值的准确性,进而实时对内存占用量进行监测,成为亟待解决的问题。
技术实现思路
1、本申请主要解决的技术问题是提供一种内存占用量监测方法及相关装置、电子设备和存储介质,能够提高获取内存占用值的准确性,进而实时对内存占用量进行监测。
2、为了解决上述技术问题,本申请第一方面提供了一种内存占用量监测方法,包括:获取任务线程中待处理数据的第一内存占用值;并调用python用户自定义函数处理待处理数据,得到待处理数据处理过程中所需的第二内存占用值和已处理数据的第三内存占用值;再将第一内存占用值、第二内存占用值和第三内存占用值之和,作为spark执行器中任务线程调用python用户自定义函数所需的内存占用值。
3、为了解决上述技术问题,本申请第二方面提供了一种内存占用量监测装置,包括获取模块、处理模块和计算模块;其中,获取模块用于获取任务线程中待处理数据的第一内存占用值;处理模块用于调用python用户自定义函数处理待处理数据,得到待处理数据处理过程中所需的第二内存占用值和已处理数据的第三内存占用值;计算模块用于将第一内存占用值、第二内存占用值和第三内存占用值之和,作为spark执行器中任务线程调用python用户自定义函数所需的内存占用值。
4、为了解决上述技术问题,本申请第三方面提供了一种电子设备,包括相互耦接的存储器和处理器,存储器中存储有程序指令,处理器用于执行程序指令以实现上述第一方面中的内存占用量监测方法。
5、为了解决上述技术问题,本申请第四方面提供了一种计算机可读存储介质,存储有能够被处理器运行的程序指令,程序指令用于实现上述第一方面中的内存占用量监测方法。
6、上述方案,通过获取任务线程中待处理数据的第一内存占用值;并调用python用户自定义函数处理待处理数据,得到待处理数据处理过程中所需的第二内存占用值和已处理数据的第三内存占用值;再将第一内存占用值、第二内存占用值和第三内存占用值之和,作为spark执行器中任务线程调用python用户自定义函数所需的内存占用值,一方面通过获取任务线程中待处理数据的第一内存占用值,并调用python用户自定义函数处理待处理数据,得到待处理数据处理过程中所需的第二内存占用值和已处理数据的第三内存占用值,有助于提高获取第一内存占用值、第二内存占用值和第三内存占用值的准确性,另一方面通过将第一内存占用值、第二内存占用值和第三内存占用值之和,作为spark执行器中任务线程调用python用户自定义函数所需的内存占用值,有助于提高获取内存占用值的准确性。故此,能够提高获取内存占用值的准确性,进而实时对内存占用量进行监测。
7、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。
1.一种内存占用量监测方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述获取任务线程中待处理数据的第一内存占用值,包括:
3.根据权利要求2所述的方法,其特征在于,在所述基于所述第一数值,选择得到所述第一内存占用值之后,以及在所述调用python用户自定义函数处理所述待处理数据,得到所述待处理数据处理过程中所需的第二内存占用值和已处理数据的第三内存占用值之前,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述调用python用户自定义函数处理所述待处理数据,得到所述待处理数据处理过程中所需的第二内存占用值和已处理数据的第三内存占用值,包括:
5.根据权利要求1所述的方法,其特征在于,获取所述已处理数据的第三内存占用值的步骤,包括:
6.根据权利要求1所述的方法,其特征在于,在将所述第一内存占用值、所述第二内存占用值和所述第三内存占用值之和,作为spark执行器中所述任务线程调用所述python用户自定义函数所需的内存占用值之后,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,在所述将所述spark执行器中各所述任务线程调用所述python用户自定义函数所需的内存占用值进行累加,得到所述spark执行器并行执行各所述任务线程调用所述python用户自定义函数所需的内存占用值之后,所述方法还包括:
8.一种内存占用量监测装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括相互耦接的存储器和处理器,所述存储器中存储有程序指令,所述处理器用于执行所述程序指令以实现权利要求1至7任一项所述的内存占用量监测方法。
10.一种计算机可读存储介质,其特征在于,存储有能够被处理器运行的程序指令,所述程序指令用于实现权利要求1至7任一项所述的内存占用量监测方法。