CN116795544A - Hadoop资源感知方法和装置、电子设备和存储介质 - Google Patents
Hadoop资源感知方法和装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116795544A CN116795544A CN202310722931.1A CN202310722931A CN116795544A CN 116795544 A CN116795544 A CN 116795544A CN 202310722931 A CN202310722931 A CN 202310722931A CN 116795544 A CN116795544 A CN 116795544A
- Authority
- CN
- China
- Prior art keywords
- resource
- target node
- resource information
- target
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000004891 communication Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 9
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000002156 mixing Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种Hadoop资源感知方法和装置、电子设备和存储介质,其中,该方法包括:通过指标采集组件获取k8s集群中目标节点的目标节点资源信息;资源拉取组件将所述目标节点资源信息发送给资源代理组件;所述资源代理组件根据所述目标节点资源信息中指示的可用资源,确定出部署于所述目标节点的目标NodeManager Pod的准确可用资源。通过本申请,解决了相关技术中存在的当容器资源负载过大时,NodeManager Pod的实际可用资源与Yarn ResourceManager感知的可用资源不匹配的问题。
Description
技术领域
本申请涉及云服务技术领域,尤其涉及一种Hadoop资源感知方法和装置、电子设备和存储介质。
背景技术
在当下,各大企业都在主张降本增效;并且在整个企业IT资源成本消耗中,大数据部分资源成本要占绝大部分比例,所以,如何将大数据部分的IT资源成本降低是当下需要解决的重点问题之一,基于此,行业内普遍做法是通过混部的方式来将大数据离线资源和业务相关的在线资源进行混部使用,但是各家的实现方式各不相同。
在相关技术中,存在多种混部的实现方案,有的是通过限制操作系统进行资源隔离,有的是通过开源方案来实现,有的是修改Hadoop Yarn代码进行二次开发来实现混部的方式,其中,Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。但是,上述方案都不具备通用性:开源实现方式存在兼容性问题,而且使用起来对于新手不太友好,依旧需要做对于大数据层面的适配和改进;通过限制操作系统进行资源隔离缺乏灵活性和系统性,无法从平台层面来解决问题;二次开发Hadoop Yarn代码虽然可以实现基于时间维度的混部策略,但是无法实现资源感知和全时维度的资源混部。所以,当容器资源负载过大时,NodeManager Pod的实际可用资源与Yarn ResourceManager感知的可用资源不匹配的问题。
因此,相关技术中存在当容器资源负载过大时,NodeManager Pod的实际可用资源与Yarn ResourceManager感知的可用资源不匹配的问题。
发明内容
本申请提供了一种Hadoop资源感知方法和装置、电子设备和存储介质,以至少解决相关技术中存在当容器资源负载过大时,NodeManager Pod的实际可用资源与YarnResourceManager感知的可用资源不匹配的问题的问题。
根据本申请实施例的一个方面,提供了一种Hadoop资源感知方法,包括:
通过指标采集组件获取k8s集群中目标节点的目标节点资源信息;
资源拉取组件将所述目标节点资源信息发送给资源代理组件;
所述资源代理组件根据所述目标节点资源信息中指示的可用资源,确定出部署于所述目标节点的目标NodeManager Pod的准确可用资源。
可选地,如前述的方法,在所述通过指标采集组件获取k8s集群中目标节点的目标节点资源信息之前,所述方法还包括:
所述指标采集组件通过Api Server对所述k8s集群中每个节点进行信息采集,获取所述每个节点的最新节点资源信息;
将所述每个节点的最新节点资源信息存储至目标数据库中。
可选地,如前述的方法,在所述根据所述目标节点资源信息中指示的可用资源,确定出部署于所述目标节点的目标NodeManager Pod的准确可用资源之前,所述方法还包括:
通过资源拉取组件,从目标数据库中按照预设周期拉取得到每个节点的最新节点资源信息。
可选地,如前述的方法,所述资源拉取组件将所述目标节点资源信息发送给资源代理组件,包括:
资源拉取组件通过调用资源代理组件接口将所述目标节点的最新节点资源信息作为所述目标节点资源信息发送给资源代理组件。
可选地,如前述的方法,所述资源拉取组件通过调用资源代理组件接口将所述目标节点的最新节点资源信息作为所述目标节点资源信息发送给资源代理组件,包括:
所述资源拉取组件通过调用所述资源代理组件接口,将所述目标节点的目标节点标识、状态标签以及所述目标节点资源信息发送给所述资源代理组件,其中,所述状态标签用于指示所述目标NodeManager Pod中的目标NodeManager的状态。
可选地,如前述的方法,所述根据所述目标节点资源信息中指示的可用资源,确定出部署于所述目标节点的目标NodeManager Pod的准确可用资源,包括:
所述资源代理组件在确定出所述目标节点标识对应的目标NodeManager,并在根据所述状态标签确定所述目标NodeManager为运行状态的情况下,更新所述目标NodeManager Pod的准确可用资源为所述目标节点资源信息所指示的可用资源。
可选地,如前述的方法,所述方法还包括:
通过指标采集组件获取k8s集群的最新集群资源信息以及最新队列资源信息,其中,所述最新队列资源信息包括所述k8s集群划分得到的一个或多个队列元素中的每个队列元素的最新资源信息;
根据所述最新集群资源信息对所述k8s集群的集群资源信息进行更新,以及根据所述最新队列资源信息对所述每个队列元素的队列资源信息进行更新。
根据本申请实施例的另一个方面,还提供了一种Hadoop资源感知装置,包括:
指标采集组件,用于获取k8s集群中目标节点的目标节点资源信息;
资源拉取组件,用于将所述目标节点资源信息发送给资源代理组件;
所述资源代理组件,用于根据所述目标节点资源信息中指示的可用资源,确定出部署于所述目标节点的目标NodeManager Pod的准确可用资源。
根据本申请实施例的又一个方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行上述任一实施例中的方法步骤。
根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。
在本申请实施例中,由于是通过指标采集组件获取k8s集群中目标节点的目标节点资源信息,并根据目标节点资源信息中指示的可用资源,确定出部署于目标节点的目标NodeManager Pod的准确可用资源,因此,在容器集群中为了不影响在线业务的稳定运行,当感知到负载比较高或者影响在线服务运行,并及时限制住目标NodeManager Pod的资源大小的时候,由于目标NodeManager Pod中部署的目标NodeManager在该情况下感知到的目标NodeManager Pod能够使用的资源是不准确的,因此,通过感知部署有目标NodeManagerPod的目标节点的目标节点资源信息,进而就可以感知到目标NodeManager Pod的资源大小被限制后的准确可用资源,从而可以解决相关技术中存在的当容器资源负载过大时,NodeManager Pod的实际可用资源与Yarn ResourceManager感知的可用资源不匹配的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的一种可选的Hadoop资源感知方法的流程示意图;
图2是根据本申请另一实施例的一种可选的Hadoop资源感知方法的流程示意图;
图3是根据本申请应用例的一种可选的Hadoop资源感知方法的示意图;
图4是根据本申请实施例的一种可选的Hadoop资源感知装置的结构框图;
图5是根据本申请实施例的一种可选的电子设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例的一个方面,提供了一种Hadoop资源感知方法。可选地,在本实施例中,上述Hadoop资源感知方法可以应用于由终端和服务器所构成的硬件环境中。服务器通过网络与终端进行连接,可用于为终端或终端上安装的客户端提供服务(如广告推送服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器提供数据存储服务。
上述网络可以包括但不限于以下至少之一:有线网络,无线网络。上述有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络可以包括但不限于以下至少之一:WIFI(Wireless Fidelity,无线保真),蓝牙。终端可以并不限定于为PC、手机、平板电脑等。
本申请实施例的Hadoop资源感知方法可以由服务器来执行,也可以由终端来执行,还可以是由服务器和终端共同执行。其中,终端执行本申请实施例的Hadoop资源感知方法也可以是由安装在其上的客户端来执行。
以由服务器来执行本实施例中的Hadoop资源感知方法为例,图1为本申请实施例提供的一种Hadoop资源感知方法,包括如下所述步骤:
步骤S101,通过指标采集组件获取k8s集群中目标节点的目标节点资源信息。
k8s即为Kubernetes,是一个基于容器技术的分布式架构解决方案,是Google开源的一个容器集群管理系统。
本实施例中的Hadoop资源感知方法可以应用于使Hadoop集群感知出所部署的k8s集群中的某一个NodeManager Pod的可用资源的场景。
该指标采集组件可以是Kube-Collector,并且,Kube-Collector可以采集到k8s集群中任一个节点的节点资源信息。
节点资源信息可以包括但不限于:NM(NodeManager)Pod资源信息、K8s集群负载信息、节点信息等等,其中节点信息可以包括但不限于:节点内存、节点CPU使用、单个任务绑定CPU核。
步骤S102,资源拉取组件将目标节点资源信息发送给资源代理组件。
资源拉取组件可以是本实施例中新增的组件AutoResource;AutoResource可以将该目标节点资源信息发送给资源代理组件,并且在发送该目标节点资源信息时,可以通过与目标节点唯一对应的标识信息对该目标节点资源信息进行标识,以使资源代理组件可以确定该目标节点资源信息是目标节点的节点资源信息。
可选地,本实施例中的资源代理组件可以是ResourceManager;ResourceManager用于对整个k8s集群系统的资源分配与调度。
步骤S103,资源代理组件根据目标节点资源信息中指示的可用资源,确定出部署于目标节点的目标NodeManager Pod的准确可用资源。
资源代理组件ResourceManager在获取上述目标节点资源之后,即可确定出目标节点资源信息中指示的目标节点的可用资源,进而可以基于该可用资源确定出部署于目标节点的目标NodeManager Pod的准确可用资源。
通过实施例中的方法,由于是通过指标采集组件获取k8s集群中目标节点的目标节点资源信息,并根据目标节点资源信息中指示的可用资源,确定出部署于目标节点的目标NodeManager Pod的准确可用资源,因此,在容器集群中为了不影响在线业务的稳定运行,当感知到负载比较高或者影响在线服务运行,并及时限制住目标NodeManager Pod的资源大小的时候,由于目标NodeManager Pod中部署的目标NodeManager在该情况下感知到的目标NodeManager Pod能够使用的资源是不准确的,因此,通过感知部署有目标NodeManager Pod的目标节点的目标节点资源信息,进而就可以感知到目标NodeManagerPod的资源大小被限制后的准确可用资源,从而可以解决相关技术中存在的当容器资源负载过大时,NodeManager Pod的实际可用资源与Yarn ResourceManager感知的可用资源不匹配的问题。
如图2所示,作为一种可选的实施例,如前述的方法,在所述步骤S101通过指标采集组件获取k8s集群中目标节点的目标节点资源信息之前,方法还包括如下所述步骤:
步骤S201,指标采集组件通过Api Server对k8s集群中每个节点进行信息采集,获取每个节点的最新节点资源信息。
在本实施例中,指标采集组件Kube-Collector可以通过k8s中的Api Server(ApiServer提供了k8s各类资源对象(pod、RC、Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心)对k8s集群中每个节点进行信息采集,获取每个节点的最新节点资源信息。
并且指标采集组件Kube-Collector可以按照预设周期获取每个节点的最新节点资源信息。
步骤S202,将每个节点的最新节点资源信息存储至目标数据库中。
在获取每个节点的最新节点资源信息之后,可以将其存储至目标数据库中。
进一步的,目标数据库可以是时序数据库(即,Time Series Data base,可以简单的理解为一个优化后用来处理时间序列数据的软件,并且数据中的数组是由时间进行索引的)。
可选地,可以只保存于每个节点对应的最新节点资源信息,并将之前的节点资源信息进行删除,也可以将节点资源信息按照时序进行整理,并按照节点,分别进行存储。
通过将每个节点的最新节点资源信息存储至目标数据库中,从而可以便于后期异步获取最新节点资源信息,以及便于追溯各个节点资源信息。
作为一种可选的实施例,如前述的方法,在所述步骤S103根据目标节点资源信息中指示的可用资源,确定出部署于目标节点的目标NodeManager Pod的准确可用资源之前,方法还包括如下所述步骤:
步骤S301,通过资源拉取组件,从目标数据库中按照预设周期拉取得到每个节点的最新节点资源信息。
在本实施例中,可以通过资源拉取组件AutoResource,按照预设周期,定时从目标数据库中拉取得到每个节点的最新节点资源信息,例如,AutoResource可以每1秒从目标数据库中进行最新节点资源信息的拉取,也可以是每1分钟从目标数据库中进行最新节点资源信息的拉取,具体的预设周期的长短可以按照实际应用场景中可用资源的变化快慢进行调整,在此不一一进行限定。
作为一种可选的实施例,如前述的方法,所述步骤S102资源拉取组件将目标节点资源信息发送给资源代理组件,包括如下所述步骤:
步骤S401,资源拉取组件通过调用资源代理组件接口将目标节点的最新节点资源信息作为目标节点资源信息发送给资源代理组件。
在本实施例中,资源拉取组件AutoResource在拉取到目标节点的最新节点资源信息之后,通过调用资源代理组件接口ResourceManager API,将目标节点的最新节点资源信息发送给资源代理组件ResourceManager,从而该资源代理组件即可获取得到目标节点资源信息。
作为一种可选的实施例,如前述的方法,所述步骤S401资源拉取组件通过调用资源代理组件接口将目标节点的最新节点资源信息作为目标节点资源信息发送给资源代理组件,包括如下所述步骤:
步骤S501,资源拉取组件通过调用资源代理组件接口,将目标节点的目标节点标识、状态标签以及目标节点资源信息发送给资源代理组件,其中,状态标签用于指示目标NodeManager Pod中的目标NodeManager的状态。
在本实施例中,资源拉取组件AutoResource在通过调用资源代理组件接口ResourceManager API,将目标节点的最新节点资源信息发送给资源代理组件ResourceManager的同时,还将目标节点的目标节点标识以及状态标签都与目标节点资源信息绑定发送给资源代理组件ResourceManager。
可选地,目标节点标识可以是目标节点的节点IP,节点IP可以是就是目标节点(也即,目标NodeManager)的IP地址。
在所有容器中启动的NodeManager进程都会打上一个Label标签(即为,状态标签)来区分所对应的NodeManager是在容器中运行的。
作为一种可选的实施例,如前述的方法,所述步骤S103根据目标节点资源信息中指示的可用资源,确定出部署于目标节点的目标NodeManager Pod的准确可用资源,包括如下所述步骤:
步骤S601,资源代理组件在确定出目标节点标识对应的目标NodeManager,并在根据状态标签确定目标NodeManager为运行状态的情况下,更新目标NodeManager Pod的准确可用资源为目标节点资源信息所指示的可用资源。
资源代理组件ResourceManager在获取相互绑定的目标节点的目标节点标识、状态标签以及目标节点资源信息之后,就可以确定该目标节点标识所指示的目标NodeManager是在容器中运行的,进而可以将目标节点资源信息指示的可用资源作为部署有目标NodeManager的目标NodeManager Pod的准确可用资源。
作为一种可选的实施例,如前述的方法,方法还包括如下所述步骤:
步骤S701,通过指标采集组件获取k8s集群的最新集群资源信息以及最新队列资源信息,其中,最新队列资源信息包括k8s集群划分得到的一个或多个队列元素中的每个队列元素的最新资源信息。
指标采集组件Kube-Collector除了获取每个节点的节点资源信息之后,还可以获取k8s集群的最新集群资源信息以及最新队列资源信息。
最新集群资源信息可以包括但不限于:k8s集群收缩或扩容后的资源、k8s集群的可用资源等等。
最新队列资源信息可以包括:对k8s集群资源进行划分得到的至少两块资源(即,队列元素)中每块资源的可用资源信息。例如,当k8s集群资源包括10G内存8核CPU,且被平均分成两个队列元素(队列元素I包括5G内存4核CPU,队列元素II包括5G内存4核CPU)用于执行不同业务的服务,因此,最新队列资源信息可以包括队列元素I的最新资源信息以及队列元素II的最新资源信息。
步骤S702,根据最新集群资源信息对k8s集群的集群资源信息进行更新,以及根据最新队列资源信息对每个队列元素的队列资源信息进行更新。
在得到最新集群资源信息之后,ResourceManager即可通过最新集群资源信息对k8s集群的集群资源信息进行更新,并且ResourceManager可以根据最新队列资源信息中指示的每个队列元素的最新资源信息,对每个队列元素的队列资源信息进行更新。
如下所述,提供一种应用前述任一实施例的应用例:
本应用例通过一个AutoResource来感知到具体准确资源,并将准确的资源通知给ResourceManager中,ResourceManager拿到资源后就会更新当前这个NodeManager的节点资源信息,在下次调度任务的时候就会这目前的资源大小进行调度。
具体的流程图如图3所示,左侧是Hadoop集群,右侧是K8s集群,上面有两个服务,Kube-Collector用来采集容器中的资源信息,包括NM Pod(NodeManager Pod)资源信息、K8s集群负载信息、节点信息等等,Kube-Collecotr同时会将这部分信息保存在TSDB的时序数据库中,方便后续的一些查询操作。
AutoResource会定期的从TSDB中拉取监控数据,同时会将数据通过调用ResourceManagerAPI的方式发送给ResourceManager,ResourceManager收到之后,会更新当前这个NodeManager的资源大小,同时也会更新队列资源,这样再次提交任务的时候,就不会因为容器资源因为资源收缩导致任务提交失败了
在更新的时候,通过如下所述方法区分具体哪个NodeManager Pod的资源需要更新呢:在上面提到kube-collector所能够拿到的信息是负载信息(CPU、内存)、主机监控指标,这里不包括NodeManager自身的信息的。
AutoResource调用ResourceManager API的时候,需要传入两个核心指标:节点IP和Label,节点IP很容易理解就是当前NM的IP地址,Label是Yarn里面的一个标记,在所有容器中启动的NodeManager进程都会打上一个Label标签来区分当前NodeManager是在容器中运行的。通过这种方式就可以做到将K8s集群中的某个NodeManager中的具体资源信息同步给ResourceManager了。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述Hadoop资源感知方法的Hadoop资源感知装置。图4是根据本申请实施例的一种可选的Hadoop资源感知装置的结构框图,如图4所示,该装置可以包括:
指标采集组件1,用于获取k8s集群中目标节点的目标节点资源信息;
资源拉取组件2,用于将目标节点资源信息发送给资源代理组件;
资源代理组件3,用于根据目标节点资源信息中指示的可用资源,确定出部署于目标节点的目标NodeManager Pod的准确可用资源。
需要说明的是,该实施例中的指标采集组件1可以用于执行上述步骤S101,该实施例中的资源拉取组件2可以用于执行上述步骤S102,该实施例中的资源代理组件3可以用于执行上述步骤S103。
本实施例中的装置,除包含上述模块之外,还可以包含执行如前述任一Hadoop资源感知方法的实施例中任意方法的模块。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实现如图1所示方法的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的又一个方面,还提供了一种用于实施上述Hadoop资源感知方法的电子设备,该电子设备可以是服务器、终端、或者其组合。
根据本申请的另一个实施例,还提供一种电子设备,包括:如图5所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的程序时,实现如下步骤:
步骤S101,通过指标采集组件获取k8s集群中目标节点的目标节点资源信息。
步骤S102,资源拉取组件将目标节点资源信息发送给资源代理组件。
步骤S103,资源代理组件根据目标节点资源信息中指示的可用资源,确定出部署于目标节点的目标NodeManager Pod的准确可用资源。
可选地,在本实施例中,上述的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,可以包含但不限于:CPU(Central ProcessingUnit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(DigitalSignal Processor,数字信号处理器)、ASIC(Application Specific IntegratedCircuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供一种计算机可读存储介质,存储介质包括存储的程序,其中,程序运行时执行上述方法实施例的方法步骤。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种Hadoop资源感知方法,其特征在于,包括:
通过指标采集组件获取k8s集群中目标节点的目标节点资源信息;
资源拉取组件将所述目标节点资源信息发送给资源代理组件;
所述资源代理组件根据所述目标节点资源信息中指示的可用资源,确定出部署于所述目标节点的目标NodeManager Pod的准确可用资源。
2.根据权利要求1所述的方法,其特征在于,在所述通过指标采集组件获取k8s集群中目标节点的目标节点资源信息之前,所述方法还包括:
所述指标采集组件通过Api Server对所述k8s集群中每个节点进行信息采集,获取所述每个节点的最新节点资源信息;
将所述每个节点的最新节点资源信息存储至目标数据库中。
3.根据权利要求1所述的方法,其特征在于,在所述根据所述目标节点资源信息中指示的可用资源,确定出部署于所述目标节点的目标NodeManager Pod的准确可用资源之前,所述方法还包括:
通过资源拉取组件,从目标数据库中按照预设周期拉取得到每个节点的最新节点资源信息。
4.根据权利要求3所述的方法,其特征在于,所述资源拉取组件将所述目标节点资源信息发送给资源代理组件,包括:
资源拉取组件通过调用资源代理组件接口将所述目标节点的最新节点资源信息作为所述目标节点资源信息发送给资源代理组件。
5.根据权利要求4所述的方法,其特征在于,所述资源拉取组件通过调用资源代理组件接口将所述目标节点的最新节点资源信息作为所述目标节点资源信息发送给资源代理组件,包括:
所述资源拉取组件通过调用所述资源代理组件接口,将所述目标节点的目标节点标识、状态标签以及所述目标节点资源信息发送给所述资源代理组件,其中,所述状态标签用于指示所述目标NodeManager Pod中的目标NodeManager的状态。
6.根据权利要求5所述的方法,其特征在于,所述根据所述目标节点资源信息中指示的可用资源,确定出部署于所述目标节点的目标NodeManager Pod的准确可用资源,包括:
所述资源代理组件在确定出所述目标节点标识对应的目标NodeManager,并在根据所述状态标签确定所述目标NodeManager为运行状态的情况下,更新所述目标NodeManagerPod的准确可用资源为所述目标节点资源信息所指示的可用资源。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
通过指标采集组件获取k8s集群的最新集群资源信息以及最新队列资源信息,其中,所述最新队列资源信息包括所述k8s集群划分得到的一个或多个队列元素中的每个队列元素的最新资源信息;
根据所述最新集群资源信息对所述k8s集群的集群资源信息进行更新,以及根据所述最新队列资源信息对所述每个队列元素的队列资源信息进行更新。
8.一种Hadoop资源感知装置,其特征在于,包括:
指标采集组件,用于获取k8s集群中目标节点的目标节点资源信息;
资源拉取组件,用于将所述目标节点资源信息发送给资源代理组件;
所述资源代理组件,用于根据所述目标节点资源信息中指示的可用资源,确定出部署于所述目标节点的目标NodeManager Pod的准确可用资源。
9.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,其特征在于,
所述存储器,用于存储计算机程序;
所述处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行权利要求1至7中任一项所述的方法步骤。
10.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至7中任一项中所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310722931.1A CN116795544A (zh) | 2023-06-16 | 2023-06-16 | Hadoop资源感知方法和装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310722931.1A CN116795544A (zh) | 2023-06-16 | 2023-06-16 | Hadoop资源感知方法和装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116795544A true CN116795544A (zh) | 2023-09-22 |
Family
ID=88039189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310722931.1A Pending CN116795544A (zh) | 2023-06-16 | 2023-06-16 | Hadoop资源感知方法和装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116795544A (zh) |
-
2023
- 2023-06-16 CN CN202310722931.1A patent/CN116795544A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108256002B (zh) | 跨机房数据同步方法、装置、系统以及服务器 | |
CN110427299B (zh) | 微服务系统应用的日志处理方法、相关设备及系统 | |
US10601680B2 (en) | Application resiliency using APIs | |
CN111399756B (zh) | 一种数据存储方法、数据下载方法及装置 | |
CN109788068B (zh) | 心跳状态信息上报方法、装置和设备及计算机存储介质 | |
CN112333249B (zh) | 一种业务服务系统及方法 | |
CN111126604B (zh) | 模型训练方法、装置、服务器及存储介质 | |
CN109104368B (zh) | 一种请求连接方法、装置、服务器及计算机可读存储介质 | |
CN107172214B (zh) | 一种具有负载均衡的服务节点发现方法及装置 | |
JP5395517B2 (ja) | 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム | |
WO2023045552A1 (zh) | 服务部署方法、服务部署系统、电子设备及存储介质 | |
CN114565502A (zh) | Gpu资源管理方法、调度方法、装置、电子设备及存储介质 | |
CN109981697B (zh) | 一种文件转存方法、系统、服务器及存储介质 | |
CN104657240B (zh) | 多内核操作系统的失效控制方法及装置 | |
CN112752352B (zh) | 一种中间会话管理功能i-smf确定方法和设备 | |
CN112363980A (zh) | 一种分布式系统的数据处理方法及装置 | |
CN116795544A (zh) | Hadoop资源感知方法和装置、电子设备和存储介质 | |
CN115809292A (zh) | 数据处理方法、装置、设备及介质 | |
CN111131497B (zh) | 文件传输方法、装置、电子设备及存储介质 | |
CN111935029B (zh) | 网关负载均衡方法和装置、存储介质及电子设备 | |
CN110162415B (zh) | 用于处理数据请求的方法、服务器、装置及存储介质 | |
EP3214549A1 (en) | Information processing device, method, and program | |
EP3777037A1 (en) | Node, network system and method of data synchronisation | |
CN114979153B (zh) | 负载均衡方法、计算机设备及存储装置 | |
CN108848140B (zh) | 事件驱动型配置管理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |