一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

集群资源的管理方法、设备及存储介质与流程

2022-06-08 12:16:24 来源:中国专利 TAG:


1.本发明实施例涉及但不限于计算机技术领域,尤其涉及一种集群资源的管理方法、设备及存储介质。


背景技术:

2.spark是一种快速、通用、可扩展的数据分析引擎。在spark中,spark应用程序基于sparkcontext进行驱动,从而通过sparkcontext将任务分配至spark的工作节点中执行对应的spark应用程序。对于spark应用程序的性能管理,可以通过spark内置的spark-ui监控页面作为性能调优及故障定位的定位来源。虽然spark-ui构建在网络产品界面设计(website user interface,webui)的框架体系之上,能提供众多度量指标(metrics),包括六个一级入口和众多二三级入口,但这些度量指标均只能通过图形化的方式进行静态展示,无法对度量指标进行实时直观统计分析。


技术实现要素:

3.以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
4.本发明实施例提供了一种集群资源的管理方法、设备及存储介质,能对度量指标进行实时直观统计分析。
5.第一方面,本发明实施例提供了一种集群资源的管理方法,包括:
6.在sparkcontext启动后,监听sparkcontext中接收到的集群应用的工作状态信息;
7.根据所述工作状态信息,获取与所述工作状态信息对应的预设工作状态集,并更新预设工作状态集中的至少一个集群事件;
8.根据所述集群事件的工作状态,调用对应的基于spark-listener创建的性能采集事件;
9.通过所述性能采集事件采集所述集群事件使用的集群资源度量指标;
10.获取所述集群资源度量指标对应的用户属性,并将所述集群资源度量指标保存至kafka集群中所述用户属性对应的主题中。
11.根据本发明一些实施例提供的集群资源的管理方法,所述性能采集事件包括应用性能采集事件、作业性能采集事件、阶段任务组性能采集事件、任务性能采集事件;所述根据所述集群事件的工作状态,调用对应的基于spark-listener创建的性能采集事件,包括如下之一:
12.根据应用事件的工作状态,调用基于spark-listener创建的应用性能采集事件;
13.或根据作业事件的工作状态,调用基于spark-listener创建的作业性能采集事件;
14.或根据阶段任务组事件的工作状态,调用基于spark-listener创建的阶段任务组
性能采集事件;
15.或根据任务事件的工作状态,调用基于spark-listener创建的任务性能采集事件。
16.根据本发明一些实施例提供的集群资源的管理方法,所述性能采集事件为所述任务性能采集事件,所述方法还包括:
17.获取阶段任务组中多个任务的任务控制参数,并判断多个所述任务控制参数中是否存在与所述集群事件对应的任务控制参数;
18.当存在与所述集群事件对应的任务控制参数,且所述任务控制参数中设置的采集状态为开启,判断调用所述性能采集事件。
19.根据本发明一些实施例提供的集群资源的管理方法,所述根据所述集群事件的工作状态,调用对应的基于spark-listener创建的性能采集事件,包括:
20.根据所述集群事件的工作状态,确定基于spark-listener创建的性能采集事件的事件类型;
21.通过异步方式回调所述事件类型对应的性能采集事件。
22.根据本发明一些实施例提供的集群资源的管理方法,所述集群事件包括作业事件、所述作业事件对应的阶段任务事件、所述阶段任务事件对应的子任务事件;
23.所述通过所述性能采集事件采集所述集群事件使用的集群资源度量指标,包括:
24.通过所述性能采集事件采集所述作业事件的所述集群资源度量指标;
25.根据采集的所述作业事件的所述集群资源度量指标,确定所述作业事件对应的阶段任务事件的所述集群资源度量指标;
26.根据所述作业事件对应的阶段任务事件的所述集群资源度量指标,确定所述阶段任务事件对应的子任务事件的所述集群资源度量指标;
27.其中,所述集群资源度量指标包括cpu数据、内存分配数据和磁盘读写数据中的至少一项。
28.根据本发明一些实施例提供的集群资源的管理方法,所述获取所述集群资源度量指标对应的用户属性,并将所述集群资源度量指标保存至kafka集群中所述用户属性对应的主题中,包括:
29.将所述集群资源度量指标依据预设的需求模型进行加工处理;
30.获取加工处理后的所述集群资源度量指标的用户属性并根据所述用户属性确定kafka集群对应的主题;
31.将加工处理后的所述集群资源度量指标保存至所述主题中。
32.根据本发明一些实施例提供的集群资源的管理方法,所述方法还包括:
33.获取待持久化的集群资源度量指标以及本地磁盘的写入地址;
34.将所述集群资源度量指标写入到所述写入地址对应的文件目录中。
35.根据本发明一些实施例提供的集群资源的管理方法,在采集所述集群事件使用的集群资源度量指标之后,所述方法还包括:
36.根据所述集群资源度量指标的预设的告警参数,确定所述告警参数对应的门限值以及数据类型;
37.将具有相同数据类型的所述集群资源度量指标的性能指标值与所述告警参数的
门限值进行比较;
38.当所述性能指标值超过所述门限值,进行预警处理。
39.第二方面,本发明实施例还提供了一种电子设备,包括:至少一个处理器,以及,与至少一个处理器通信连接的存储器;其中,存储器存储有指令,指令被至少一个处理器执行,以使至少一个处理器执行指令时实现如第一方面任意一项所述的集群资源的管理方法。
40.第三方面,本发明实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行第一方面任意一项所述的集群资源的管理方法。
41.本发明上述实施例至少具有如下有益效果:当sparkcontext启动后,通过sparkcontext可以知道每个集群应用执行信息,从而触发调用基于spark-listener创建的多个自定义的性能采集事件,并在集群应用的生命周期的各个阶段变化进行度量指标的采集,相对于传统的spark-ui的方式,本发明实施例的性能采集事件为自定义的,其拓展性更高;且基于spark-listener采集的度量指标具有具体的数值,能更加直观且实时的显示,因此,本技术的实施例能实现对spark的度量指标的实时采集和观测,进而实现实时直观统计分析。
42.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
43.附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
44.图1是现有技术中spark系统示意图;
45.图2是本发明实施例提供的集群资源的管理方法的流程示意图;
46.图3是本发明实施例提供的集群资源的管理方法的系统架构示意图;
47.图4是本发明实施例提供的集群资源的管理方法中步骤s400的流程示意图;
48.图5本发明实施例提供的集群资源的管理方法中步骤s400的流程示意图;
49.图6是本发明实施例提供的装置的模块结构示意图;
50.图7是本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
51.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
52.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
53.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,
本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
54.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
55.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
56.下面是对本发明中用到的一些术语的解释。
57.spark(apache spark),是专为大规模数据处理而设计的快速通用的计算引擎。是uc berkeley amp lab所开源的类hadoop mapreduce的通用并行框架,专门用于大数据量下的迭代式计算。spark是将数据一直缓存在内存中,直到计算得到最后的结果,再将结果写入到磁盘,在多次运算的情况下,spark的执行效率比较快的,其优化了迭代式工作负载。
58.sparkcontext,其作为spark应用程序的核心组成,是所有spark功能的入口,在spark应用程序执行过程中起着主导作用,其代表与spark集群的连接并和spark集群进行交互,能够用来在集群上创建弹性分布式数据集(resilient distributed datasets,rdd)、累加器(accumlator)、广播变量(broadcast variables)等。
59.spark-ui:是spark程序在运行时,提供一个web页面,以查看集群应用运行状态信息,为静态页面,具有任务、作业等集群事件的性能,一般以柱状形式进行显示。
60.kafka集群:是一个分布式消息系统,具有高水平扩展和高吞吐量的特点。kafka中可将消息分类,每一类的消息称为一个主题(topic),消费者可以对不同的topic进行不同的处理。
61.相关技术中,参照图1所示的spark系统图,spark是一种快速、通用、可扩展的数据分析引擎。在spark中,spark应用程序基于sparkcontext进行驱动,从而通过sparkcontext将任务通过集群管理器(cluster manager)分配至spark的工作节点(worker node)中执行对应的spark应用程序。对于spark应用程序的性能管理,可以通过spark内置的spark-ui监控页面作为性能调优及故障定位的定位来源。虽然spark-ui构建在网络产品界面设计(website user interface,webui)的框架体系之上,能提供众多度量指标(metrics),包括六个一级入口和众多二三级入口,但spark-ui监控页面为静态展示,只能通过图形化的方式进行静态展示且无法对指标进行实时观测以及采集,进而无法实现直观统计分析。基于此,本发明提出一种集群资源的管理方法、设备及存储介质,以解决对spark系统的度量指标进行实时直观统计分析的问题。
62.如图2和图3所示,本发明提出一种集群资源的管理方法,方法包括:
63.步骤s100、在sparkcontext启动后,监听sparkcontext中接收到的集群应用的工作状态信息。
64.需说明的是,工作状态信息用于表示集群应用对应的集群事件是否被触发。
65.步骤s200、根据工作状态信息,获取与工作状态信息对应的预设工作状态集,并更新预设工作状态集中的至少一个集群事件。
66.需说明的是,集群应用在执行时会触发至少一个集群事件,具体的,集群应用分为四个级别,分别是应用(application)级别、作业(job)级别、阶段任务组(stage)级别以及任务(task)级别。工作状态信息可以分别表示应用(application)级别、作业(job)级别、阶段任务组(stage)级别以及任务(task)级别对应的集群事件的执行状态。每一次工作状态信息的变更表示对应的至少一个集群事件产生了。示例性的,参照图3所示的实施例,在sparkcontext启动时,会启动一个记录工作状态的监听器(listenerbus)管理所有的性能采集事件。结合图1所示的系统图,集群应用的调度器(executor)与sparkcontext建立连接,sparkcontext接收来自executor的工作状态信息(如任务启动、任务结束等工作状态信息),进而更新listenerbus中工作状态集。
67.需说明的是,通过更新工作状态可以判断是否需要进行采集操作,减少主动访问查询的次数,同时通过这种方式能实现异步回调对应的性能采集事件。
68.步骤s300、根据集群事件的工作状态,调用对应的基于spark-listener创建的性能采集事件。
69.需说明的是,spark-listener提供了在整个任务生命周期中各个阶段变换的事件监听机制,因此基于spark-listener创建的性能采集事件能采集集群事件各个阶段的资源请求信息,实现实时展示运行任务的资源meteric,并保证系统、服务、业务正常运行。
70.步骤s400、通过性能采集事件采集集群事件使用的集群资源度量指标。
71.需说明的是,集群资源度量指标包括cpu的占用情况、内存的使用情况以及磁盘等使用情况。根据cpu的占用情况、内存的使用情况以及磁盘等使用情况能判断影响spark系统的运行效率的因素,进而可以将集群资源度量指标作为调优的依据判断是否调优完成。
72.示例性的,参照图3所示的实施例,在性能采集事件被调用后,会被加入到listenerbus管理的队列中进行管理,进而通过listenerbus进行集群资源度量指标的汇总以及存储。
73.步骤s500、获取集群资源度量指标对应的用户属性,并将集群资源度量指标保存至kafka集群中用户属性对应的主题中。
74.需说明的是,采用kafka集群进行集群资源度量指标的管理以及存储,将集群资源度量指标的采集以及显示进行解耦,同时,通过访问kafka集群反馈需要显示的性能指标,在面对超大规模集群和海量数据查询下,能降低监控指标采集对系统的压力。
75.需说明的是,在多用户场景下,利用kafka集群中的主题(topic)方案,能将集群资源度量指标分开管控,从而解决多用户场景下日志错乱问题,实现高吞吐/低延迟的采集方案。
76.需说明的是,与kafka集群的交互方式可以支持流式处理。
77.示例性的,参照图3所示的实施例,在kafka集群分别创建了topica、topicb以及topicc三个topic。三个topic分别用于管理用户a、用户b以及用户c的用户数据,其中用户数据包括集群资源度量指标。当采集的集群资源度量指标是用户a发起的集群事件所产生的,则将采集到的资源数据保存至topica下,同理,对于用户b发起的集群事件,会将其对应的资源数据保存至topicb下。
78.因此,当sparkcontext启动后,通过sparkcontext可以知道每个集群应用执行信息,从而触发调用基于spark-listener创建的多个自定义的性能采集事件,并在集群应用
的生命周期的各个阶段变化进行度量指标的采集,相对于传统的spark-ui的方式,本发明实施例的性能采集事件为自定义的,其拓展性更高;且基于spark-listener采集的度量指标具有具体的数值,能更加直观且实时的显示,因此,本技术的实施例能实现对spark的度量指标进行实时采集和观测,进而实现实时直观统计分析。
79.需说明的是,spark系统中还设置有显示终端,工程师在显示终端连接kafka集群,从而使得集群资源度量指标在显示终端中实时自动显示,在另一些实施例中,在显示终端中设置了启动选项(如调优选项),当工程师开启了调优选项则会在显示终端中将集群资源度量指标进行实时的显示,同时也可以根据工程师设置的筛选条件,在显示终端将从kafka集群中查询的历史时间段内的集群资源度量指标进行显示。当调优选项被停止时,则会停止显示集群资源度量指标。
80.可理解的是,性能采集事件包括应用性能采集事件、作业性能采集事件、阶段任务组性能采集事件、任务性能采集事件,步骤s300、根据集群事件的工作状态,调用对应的基于spark-listener创建的性能采集事件,包括如下之一:
81.根据应用事件的工作状态,调用基于spark-listener创建的应用性能采集事件;
82.或根据作业事件的工作状态,调用基于spark-listener创建的作业性能采集事件;
83.或根据阶段任务组事件的工作状态,调用基于spark-listener创建的阶段任务组性能采集事件;
84.或根据任务事件的工作状态,调用基于spark-listener创建的任务性能采集事件。
85.需说明的是,基于spark-listener,支持对任务task、stage、job级别的指标进行扩展,进而可以显示实际cpu运行时间等指标作为调优依据。
86.需说明的是,在集群事件被启动时,调用对应的性能采集事件,并在结束时记录集群事件相关的所有集群资源度量指标。如对于应用性能采集事件而言,其会包括至少一个作业性能采集事件,因此,在应用性能采集事件结束时会记录对应的每一个作业性能采集事件;而对于每一个作业性能采集事件而言,每个作业性能采集事件均会包括至少一个阶段任务组性能采集事件,因此在每个作业性能采集事件结束时会记录每一个阶段任务组性能采集事件;对于阶段任务组性能采集事件而言,每个阶段任务组性能采集事件至少包括一个任务性能采集事件;因此在每个阶段任务组性能采集事件结束时会记录每一个任务性能采集事件。
87.需说明的是,当有多个集群事件被触发时,多个性能采集事件也会被触发。示例性的,当多个application级别的集群事件、job级别的集群事件触发时,会调用多个应用性能采集事件以及作业性能采集事件分别采集对应的集群事件。当集群事件的生命周期结束后,则会记录对应的性能采集事件中所有的集群资源度量指标;示例性的,在每个applicaiton级别的集群事件执行结束,会有onapplicationend事件(即applicaiton完成的消息,对应applicaiton级别的集群事件的工作状态)发生,调用对应的应用性能采集事件能记录当前application每一个job的相关资源信息。示例性的,每个job级别的集群事件执行结束,会有onjobend事件(即job完成的消息,对应job级别的集群事件工作状态)发生,调用对应的作业性能采集事件记录当前job每一个stage的相关资源信息。示例性的,在每
个stage执行结束,会有onstagecompleted事件发生(即stage完成的事件,对应工作状态信息),此时可以根据onstagecompleted,调用对应的记录当前阶段任务组性能采集事件,通过阶段任务组性能采集事件记录stage级别的资源信息以及stage级别下所有task的资源信息。
88.可理解的是,性能采集事件为任务性能采集事件,参照图4所示,集群资源的管理方法还包括:
89.步骤s410、获取阶段任务组中多个任务的任务控制参数,并判断多个任务控制参数中是否存在与集群事件对应的任务控制参数。
90.需说明的是,任务控制参数可以动态设置。任务控制参数用于控制哪些任务需要进行性能采集。例如,任务控制参数设置为阶段任务组a1下的任务a关闭检测,则表示在进行任务采集时,只要是涉及是阶段任务组a1中的任务a均会关闭。需说明的是,实际应用中,用户可以通过导出所有的任务列表,从而可以在调优过程中,通过动态设置需要屏蔽的任务名称进行任务控制参数的设置。需说明的是,动态设置的方式可以是通过配置文件,也可以通过命令下发进行设置,在此,本发明实施例不做限制。优选的,本发明实施例采用配置文件进行动态配置。
91.步骤s420、当存在与集群事件对应的任务控制参数,且任务控制参数中设置的采集状态为开启,判断调用性能采集事件。
92.需说明的是,每个阶段任务中会有多个任务且任务数量通常较多,通过任务控制参数能进行有选择性的显示和采集任务数据,在满足性能采集的前提下,能够减轻系统的压力,从而提升系统的采集效率。
93.可理解的是,步骤s300、根据集群事件的工作状态,调用对应的基于spark-listener创建的性能采集事件,包括:根据集群事件的工作状态,确定基于spark-listener创建的性能采集事件的事件类型;通过异步方式回调事件类型对应的性能采集事件。
94.需说明的是,通过异步方式回调不影响正常的集群事件的运行。实际应用中,可以在sparkcontext中注册回调,在sparkcontext中记录的工作状态发生变更时,则根据注册的回调调用相关的性能采集事件。
95.需说明的是,可以对基于spark-listener创建的应用性能采集事件、作业性能采集事件、阶段任务组性能采集事件、任务性能采集事件均采用异步回调的方式进行调用,也可以部分采用异步回调的方式,部分采用同步方式进行调用。
96.需说明的是,回调的方式可以进一步确保性能采集事件被触发,从而可以提升所需的集群资源度量指标采集到的概率。
97.可理解的是,集群事件包括作业事件、作业事件对应的阶段任务事件、阶段任务事件对应的子任务事件;参照图5所示,步骤s400、通过性能采集事件采集集群事件使用的集群资源度量指标,包括:
98.步骤s610、通过性能采集事件采集作业事件的集群资源度量指标。
99.步骤s620、根据采集的作业事件的集群资源度量指标,确定作业事件对应的阶段任务事件的集群资源度量指标。
100.步骤s630、根据作业事件对应的阶段任务事件的集群资源度量指标,确定阶段任务事件对应的子任务事件的集群资源度量指标。
101.其中,其中,集群资源度量指标包括cpu数据、内存分配数据和磁盘读写数据中的至少一项。
102.需说明的是,内存分配数据用于表示集群事件申请的内存、内存读写的次数,磁盘读写数据用于表示集群事件读写磁盘的次数以及数据量。cpu数据、内存分配数据以及磁盘读写数据均会直观的显示出来;工程师可以根据具体的数值判断是否出现异常从而可以将集群资源度量指标作为调优的依据。相对于传统采用图示的方式,这种方式能够更加直观的看到cpu的使用情况、内存使用情况以及磁盘的使用情况。
103.示例性的,以application级别的集群事件为例,在每个applicaiton执行结束,onapplicationend事件发生的时候会记录当前application每一个job的相关资源信息。而对于记录的每个job级别事件而言,在每个job执行结束,onjobend事件发生的时候,记录当前job每一个stage的相关资源信息(如cpu数据、内存分配数据以及磁盘读写数据等)。同理,在每个stage执行结束,onstagecompleted事件发生的时候,记录当前stage级别的资源信息(如cpu数据、内存分配数据以及磁盘读写数据等),示例性的,对于application级别的集群事件,集群资源度量指标包括如下表一中汇总数据和表二中的任务对应的资源信息,表一如下所示:
104.序号程序定义中文释义1executorcputimes(ms)executor-cpu运行时间2executorruntimes(ms)executor运行时间3applicationmem(mb)实际分配的内存4applicationcores(core)实际分配的cpu核数5applyexecutormem用户申请资源内存6applyexecutorcore用户申请资源core7applyexecutornum用户申请executor数量8inputrecordsread任务输入读取的记录条数9inputbytesread任务输入读取的字节数10outputrecordswritten任务输出写入的记录条数11outputbyteswritten任务输出写入的字节数12shuffletotalbytesreadshuffle过程中读入的字节数13shufflerecordsreadshuffle过程中读入的记录条数14shufflebyteswrittenshuffle过程写出的字节数15shufllerecordswrittenshuffle过程写出的记录条数16shufllewritetimeshuffle过程写出过程耗时
105.表一
106.其中,表一中序号1至序号4的程序定义属于cpu数据,序号5至序号10的程序定义为内存数据,序号8至序号16的程序定义为磁盘数据。集群资源度量指标还包括针对每一task级别的资源数据,具体的,在每个stage执行结束,会发生onstagecompleted的事件,此时可以采集允许检测的task级别的资源性能信息如下表二所示:
[0107][0108]
表二
[0109]
其中,表二中序号为1至序号2的程序定义为cpu数据,表二中序号为3至序号12的程序定义为磁盘读写数据,表二中序号为13至序号16的程序定义为内存分配数据。需说明的是,本发明实施例中的集群资源度量指标优选表一和表二中的数据类型进行采集,但是对于本发明实施例的方法而言,其并不限制集群资源度量指标的数据类型。
[0110]
因此,通过上述表一和表二的度量指标信息,工程师可以快速定位到每个应用、每个job、每个task以及每个stage的内存分配、磁盘读写以及cpu的运行情况,从而可以根据数值快速判断出异常的位置,实现对spark系统的调优处理。
[0111]
可理解的是,步骤s500、获取集群资源度量指标对应的用户属性,并将集群资源度量指标保存至kafka集群中用户属性对应的主题中,包括:将集群资源度量指标依据预设的需求模型进行加工处理;获取加工处理后的集群资源度量指标的用户属性并根据用户属性确定kafka集群对应的主题;将加工处理后的集群资源度量指标保存至主题中。
[0112]
需说明的是,需求模型可以是故障模型,将集群资源度量指标输入故障模型中,则会在会筛选出超过门限值的度量指标,并将超过门限值的集群资源度量指标数据直接写入到kafka集群对应的主题,并对集群资源度量指标进行拟合,将拟合结果保存到kafka集群对应的主题;从而可以简单进行筛选处理,简化后续调优的数据量。
[0113]
需说明的是,在一些实施例中,需求模型也可以理解是分类管理,将采集到的度量指标根据用户设置的分类写入到主题中对应的目录,从而在工程师通过kafka集群获取数据进行调优或者分析时,可以快速通过目录信息筛选出所需的数据,从而提升用户体验以及调优效率。
[0114]
可理解的是,集群资源的管理方法还包括:获取待持久化的集群资源度量指标以及本地磁盘的写入地址;将集群资源度量指标写入到写入地址对应的文件目录中。
[0115]
需说明的是,持久化到磁盘后,使用者可以实时或离线的方式获取监控指标,从而可以提升数据调优的便利性。在持久化到磁盘后,使用者可以直接访问磁盘上保存的度量指标(监控指标)进而实现离线方式进行数据访问。
[0116]
需说明的是,本地磁盘的写入地址可以是动态进行设置,也可以是默认的路径设置。
[0117]
可理解的是,在步骤s400之后,集群资源的管理方法还包括:根据集群资源度量指标的预设的告警参数,确定告警参数对应的门限值以及数据类型;将具有相同数据类型的集群资源度量指标的性能指标值与告警参数的门限值进行比较;当性能指标值超过门限值,进行预警处理。
[0118]
需说明的是,以参照表二中executor-cpu运行时间为例,对executor-cpu运行时间设置了告警参数,则根据告警参数的门限值判断是否对executor-cpu运行时间进行预警。预警的方式可以直接在显示界面进行告警显示,也可以通过暂停相关的集群事件进行警示。告警参数可以设置多级门限值,当到达不同级别的门限值可以进行不同声音强度的预警或图标显示预警或在最高级别门限值时,暂停相关的集群事件。
[0119]
需说明的是,门限值的设置可以是程序中指定或者是人为动态改变。
[0120]
需说明的是,预警处理可以是通过另一进程处理,此时会遍历所有的告警参数,以在每一告警参数中的数据类型于集群资源度量指标的性能指标类型匹配时,判断是否超出门限值,进而在超出门限值时进行预警处理。
[0121]
需说明的是,在一些实施例中,告警参数可以动态进行设置,也可以提供接口进行查询。告警参数中的门限值也可以进行动态修改,从而提升对spark系统二次开发的便利性。
[0122]
示例性的,参照图3所示的实施例,在sparkcontext启动时,启动记录工作状态的监听器listernerbus。当spark系统中集群应用的executor发送了用户a触发的集群应用相关的心跳信息(即工作状态信息),listernerbus根据心跳信息的类型更新工作状态集中至少一个集群事件的工作状态。在工作状态发生变化时,listernerbus根据集群事件的事件信息(事件信息包括类型、采集的集群应用名称)异步回调基于spark-listener创建的性能采集事件,此时,性能采集事件采集该集群应用在各个阶段的cpu数据、内存分配数据和磁盘读写数据,当该集群应用停止后,性能采集事件反馈该集群应用的集群资源度量指标。具体的,以executor中心跳信息携带的是application级别的事件a1为例,在a1会触发应用性
能采集事件的异步回调,并将新增的应用性能采集事件添加到listernerbus管理的队列中,同时在a1的生命周期内,会同步监控a1下的每一个job级别的事件a11、每一个a11下的stage级别的事件a111、以及每一个stage级别a111下的task级别子任务事件a1111,在事件a11、a111以及a1111产生时,会分别异步回调作业性能采集事件、阶段任务组性能采集事件、任务性能采集事件进行集群资源度量指标的采集并将其加入到listernerbus管理的队列中。同时,在采集过程中,listernerbus会间隔一段时间将队列中各性能事件采集到的集群资源度量指标依据事件之间的关联写入到kafka集群中执行a用户的用户属性对应的主题topica中。在写入过程中,会将采集的到集群资源度量指标依据预设的需求模型进行二次加工后再写入。其中,对于阶段任务组性能事件而言,其采集到的cpu数据、内存分配数据和磁盘读写数据会归于对应的job级别的应用a11下;对于任务性能采集事件采集到cpu数据、内存分配数据和磁盘读写数据其归于对应的stage级别的事件a111下。此时,显示a1生命周期结束时的集群资源度量指标,会显示job级别的事件a11的名称,每一个job级别的事件a11下stage级别事件a111的名称、stage级别事件a111对应的集群资源度量指标,且在每一个stage级别事件a111下还会显示task级别的子任务事件a1111的名称以及事件a1111的集群资源度量指标。在采集过程中,当集群资源度量指标中某一指标,如executor-cpu运行时间超出预设的门限值,则发出预警。
[0123]
因此,参照图2至图5所示的实施例,本发明实施例提高了用户对spark系统的技术使用体验,通过采集application、job、stage、task级别的集群资源度量指标,能协助spark系统的平台侧和用户侧对运行任务更好的性能调优及故障定位,对于平台侧,通过对用户运行任务的指标分析,更好的对spark平台进行参数配置,从而提升平台效率。对于用户侧,运行任务的实时监控及历史数据均可在kafka中获取,用户可基于此做性能调优及故障告警,从而提升任务效率,降低了平台侧运维压力,提升客户满意度。
[0124]
本发明的方法可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0125]
可理解的是,参照图6所示的实施例,本发明实施例还提供一种电子装置,电子装置包括:
[0126]
监听模块100,监听模块100用于在sparkcontext启动后,监听sparkcontext中接收到的集群应用的工作状态信息;
[0127]
回调更新模块200,回调更新模块200用于根据所述工作状态信息,获取与所述工作状态信息对应的预设工作状态集,并更新预设工作状态集中的至少一个集群事件。
[0128]
回调处理模块300,回调处理模块300用于根据所述集群事件的工作状态,调用对应的基于spark-listener创建的性能采集事件;
[0129]
采集模块400,采集模块400用于通过所述性能采集事件采集所述集群事件使用的
集群资源度量指标。
[0130]
存储模块500,存储模块500用于获取所述集群资源度量指标对应的用户属性,并将所述集群资源度量指标保存至kafka集群中所述用户属性对应的主题中。
[0131]
需说明的是,对于本发明的实施例,还包括显示模块600,显示模块600用于显示集群资源度量指标。显示模块600与所述存储模块500通信连接。在采集到集群资源度量指标后,可以直接在显示模块600中实时显示,也可以由用户触发查询后,在显示模块600中实时更新。
[0132]
需说明的是,每一个性能采集事件均可以创建对应的线程,从而可以通过多线程的方式进行调用。集群资源度量指标包括cpu数据、内存分配数据以及磁盘读写数据。根据要采集的事件级别,设置了应用性能采集事件、作业性能采集事件、阶段任务组性能采集事件、任务性能采集事件四种事件,当集群事件触发时,会与该四种性能采集事件进行匹配,从而调用响应的函数进行性能的采集。
[0133]
需说明的是,在一些实施例中,装置还包括配置模块,配置模块用于设置任务的任务控制参数,此时采集模块400的通过性能采集事件采集集群事件使用的集群资源度量指标,包括:获取阶段任务组中多个任务的任务控制参数,并判断多个所述任务控制参数中是否存在与所述集群事件对应的任务控制参数;当存在与所述集群事件对应的任务控制参数,且所述任务控制参数中设置的采集状态为开启,判断调用所述性能采集事件。
[0134]
本发明实施例还提供了一种电子设备,包括:
[0135]
至少一个处理器,以及,
[0136]
与至少一个处理器通信连接的存储器;其中,
[0137]
存储器存储有指令,指令被至少一个处理器执行,以使至少一个处理器执行指令时实现如本发明实施例上述实施例的集群资源的管理方法。
[0138]
本发明实施例实现上述集群资源的管理方法,因此,当sparkcontext启动后,通过sparkcontext可以知道每个集群应用执行信息,从而可以调用自定义基于spark-listener创建多个自定义的性能采集事件,并在集群应用的生命周期的各个阶段变化进行度量指标的监控以及采集,相对于传统的spark-ui的方式,本发明实施例的性能采集事件为自定义的,其拓展性更高;且基于spark-listener采集的度量指标具有具体的数值,能更加直观且实时的显示,提升调优的便利性。
[0139]
示例性的,处理器可以处理如图2所示的步骤s100~步骤s500,在另一些实施例中,也可以处理如图2所示的步骤s100~步骤s500、如图4所示的步骤s410~步骤s430。在另一些实施例中,处理器还可以处理图2所示的步骤s100~步骤s500、如图4所示的步骤s410~步骤s430、如图5所示的步骤s610~步骤s630。
[0140]
下面结合图7对计算机设备的硬件结构进行详细说明。该电子设备包括:处理器710、存储器720、输入/输出接口730、通信接口740和总线750。
[0141]
处理器710,可以采用通用的cpu(central processin unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本公开实施例所提供的技术方案;
[0142]
存储器720,可以采用rom(read only memory,只读存储器)、静态存储设备、动态存储设备或者ram(random access memory,随机存取存储器)等形式实现。存储器720可以
存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器720中,并由处理器710来调用执行本公开实施例的模型的训练方法或者执行本公开实施例的情感消息生成方法;
[0143]
输入/输出接口730,用于实现信息输入及输出;
[0144]
通信接口740,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信;和总线750,在设备的各个组件(例如处理器710、存储器720、输入/输出接口730和通信接口740)之间传输信息;
[0145]
其中,处理器710、存储器720、输入/输出接口730和通信接口740通过总线750实现彼此之间在设备内部的通信连接。
[0146]
本发明实施例还提供一种存储介质,该存储介质是计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使计算机执行本公开实施例的模型的训练方法或者执行本公开实施例的情感消息生成方法。
[0147]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0148]
可理解为,本发明还提供一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令用于执行上述集群资源的管理方法。
[0149]
示例性的,指令可以实现如图2所示的步骤s100~步骤s500,在另一些实施例中,也可以实现如图2所示的步骤s100~步骤s500、如图4所示的步骤s410~步骤s430。在另一些实施例中,指令还可以实现图2所示的步骤s100~步骤s500、如图4所示的步骤s410~步骤s430、如图5所示的步骤s610~步骤s630。
[0150]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0151]
本发明实施例描述的实施例是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变
和新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
[0152]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
[0153]
本发明的说明书中术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0154]
应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0155]
以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本发明权利要求所限定的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献