一种资源调度方法、装置、设备及介质转让专利
申请号 : CN202110925704.X
文献号 : CN113377500B
文献日 : 2021-12-14
发明人 : 钱浩东 , 周明伟 , 陈文灿
申请人 : 浙江大华技术股份有限公司
摘要 :
权利要求 :
1.一种资源调度方法,其特征在于,所述方法包括:在Kubernetes系统中部署Hadoop系统的各个应用,获取所述各个应用的资源占用率数据;
当根据所述各个应用的资源占用率数据确定满足触发资源调度条件,且当前不处于预设的冷却期内时,根据预先设定的资源调度策略进行资源调度,并重新进入冷却期;
获取所述各个应用的存储资源占用率数据,根据所述各个应用的存储资源占用率数据确定平均存储资源占用率数据,所述平均存储资源占用率数据小于预设的第二占用率阈值,确定当前HDFS中不存在副本数不足的文件时,删除副本ID最大的DataNode副本实例;其中,平均存储资源占用率数据为针对各个应用,确定出的所述应用对应各个副本的存储资源占用率数据的平均值;当Kubernetes检测到DataNode各个副本容器的资源占用情况符合扩容或缩容标准,且实际副本个数在最小副本数和最大副本数之间,则会触发扩容或缩容操作;
获取所述各个应用的计算资源占用率数据,根据所述各个应用的计算资源占用率数据确定平均计算资源占用率数据,所述平均计算资源占用率数据小于预设的第四占用率阈值,确定副本ID最大的NodeManager没有执行任务时,删除副本ID最大的NodeManager副本实例,如果所述副本ID最大的NodeManager正在执行任务,等到所述副本ID最大的NodeManager执行任务完成,删除所述副本ID最大的NodeManager副本实例;并在缩容之前将所述副本ID最大的NodeManager标记为UnHealthy,标记为UnHealthy的NodeManager不再被调度执行新的任务;其中,平均计算资源占用率数据为针对各个应用,确定出的所述应用对应各个副本的计算资源占用率数据的平均值;当Kubernetes检测到NodeManager各个容器的资源占用情况符合扩容或缩容标准,且实际副本个数在最小副本数和最大副本数之间,则会触发扩容或缩容操作。
2.如权利要求1所述的方法,其特征在于,所述在Kubernetes系统中部署Hadoop系统的各个应用包括:
获取所述Hadoop系统的各个应用的部署配置文件,根据所述各个应用的部署配置文件确定所述各个应用的镜像文件版本信息和副本数;
根据所述各个应用的镜像文件版本信息从镜像仓库获取对应的镜像文件,根据所述各个应用的副本数和镜像文件,在所述Kubernetes系统中部署所述各个应用。
3.如权利要求1所述的方法,其特征在于,所述获取所述各个应用的资源占用率数据;
根据所述各个应用的资源占用率数据确定满足触发资源调度条件包括:获取所述各个应用的存储资源占用率数据,根据所述各个应用的存储资源占用率数据确定平均存储资源占用率数据,当所述平均存储资源占用率数据大于预设的第一占用率阈值,确定触发资源调度条件。
4.如权利要求1所述的方法,其特征在于,所述获取所述各个应用的资源占用率数据;
根据所述各个应用的资源占用率数据确定满足触发资源调度条件包括:获取所述各个应用的计算资源占用率数据,根据所述各个应用的计算资源占用率数据确定平均计算资源占用率数据,当所述平均计算资源占用率数据大于预设的第三占用率阈值,确定触发资源调度条件。
5.如权利要求3所述的方法,其特征在于,所述根据预先设定的资源调度策略进行资源调度包括:
当所述平均存储资源占用率数据大于预设的第一占用率阈值,增加所述Hadoop系统资源的副本实例;当所述平均存储资源占用率数据小于预设的第二占用率阈值,减少所述Hadoop系统资源的副本实例。
6.如权利要求4所述的方法,其特征在于,所述根据预先设定的资源调度策略进行资源调度包括:
当所述平均计算资源占用率数据大于预设的第三占用率阈值,增加所述Hadoop系统资源的副本实例;当所述平均计算资源占用率数据小于预设的第四占用率阈值,减少所述Hadoop系统资源的副本实例。
7.一种资源调度装置,其特征在于,所述装置包括:部署模块,用于在Kubernetes系统中部署Hadoop系统的各个应用,获取所述各个应用的资源占用率数据;
调度模块,用于当根据所述各个应用的资源占用率数据确定满足触发资源调度条件,且当前不处于预设的冷却期内时,根据预先设定的资源调度策略进行资源调度,并重新进入冷却期;
所述调度模块,具体用于获取所述各个应用的存储资源占用率数据,根据所述各个应用的存储资源占用率数据确定平均存储资源占用率数据,所述平均存储资源占用率数据小于预设的第二占用率阈值,确定当前HDFS中不存在副本数不足的文件时,删除副本ID最大的DataNode副本实例;其中,平均存储资源占用率数据为针对各个应用,确定出的所述应用对应各个副本的存储资源占用率数据的平均值;当Kubernetes检测到DataNode各个副本容器的资源占用情况符合扩容或缩容标准,且实际副本个数在最小副本数和最大副本数之间,则会触发扩容或缩容操作;获取所述各个应用的计算资源占用率数据,根据所述各个应用的计算资源占用率数据确定平均计算资源占用率数据,所述平均计算资源占用率数据小于预设的第四占用率阈值,确定副本ID最大的NodeManager没有执行任务时,删除副本ID最大的NodeManager副本实例,如果所述副本ID最大的NodeManager正在执行任务,等到所述副本ID最大的NodeManager执行任务完成,删除所述副本ID最大的NodeManager副本实例;
并在缩容之前将所述副本ID最大的NodeManager标记为UnHealthy,标记为UnHealthy的NodeManager不再被调度执行新的任务;其中,平均计算资源占用率数据为针对各个应用,确定出的所述应用对应各个副本的计算资源占用率数据的平均值;当Kubernetes检测到NodeManager各个容器的资源占用情况符合扩容或缩容标准,且实际副本个数在最小副本数和最大副本数之间,则会触发扩容或缩容操作。
8.如权利要求7所述的装置,其特征在于,所述部署模块,具体用于获取所述Hadoop系统的各个应用的部署配置文件,根据所述各个应用的部署配置文件确定所述各个应用的镜像文件版本信息和副本数;根据所述各个应用的镜像文件版本信息从镜像仓库获取对应的镜像文件,根据所述各个应用的副本数和镜像文件,在所述Kubernetes系统中部署所述各个应用。
9.如权利要求7所述的装置,其特征在于,所述部署模块,具体用于获取所述各个应用的存储资源占用率数据,根据所述各个应用的存储资源占用率数据确定平均存储资源占用率数据;
所述调度模块,具体用于当所述平均存储资源占用率数据大于预设的第一占用率阈值,确定触发资源调度条件。
10.如权利要求7所述的装置,其特征在于,所述部署模块,具体用于获取所述各个应用的计算资源占用率数据,根据所述各个应用的计算资源占用率数据确定平均计算资源占用率数据;
所述调度模块,具体用于当所述平均计算资源占用率数据大于预设的第三占用率阈值,确定触发资源调度条件。
11.如权利要求9所述的装置,其特征在于,所述调度模块,具体用于当所述平均存储资源占用率数据大于预设的第一占用率阈值,增加所述Hadoop系统资源的副本实例;当所述平均存储资源占用率数据小于预设的第二占用率阈值,减少所述Hadoop系统资源的副本实例。
12.如权利要求10所述的装置,其特征在于,所述调度模块,具体用于当所述平均计算资源占用率数据大于预设的第三占用率阈值,增加所述Hadoop系统资源的副本实例;当所述平均计算资源占用率数据小于预设的第四占用率阈值,减少所述Hadoop系统资源的副本实例。
13.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1‑6任一项所述的方法步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1‑6任一项所述的方法步骤。
说明书 :
一种资源调度方法、装置、设备及介质
技术领域
背景技术
容器编排、部署。目前,Kubernetes已经成为了容器云平台的事实标准。Hadoop系统是一个
由Apache基金会开源的分布式系统基础架构,其实现了一个分布式文件系统,其中HDFS提
供了海量数据的存储能力,MapReduce/Yarn提供了海量数据的计算能力,在设计之初
Hadoop部署在物理机上,对物理机上的资源进行统一调度。目前,Hadoop是业界各公司大数
据业务的必备基础设施,为个性化推荐、搜索推荐、数据分析等业务提供支持。
系统所需的基础数据。这样Hadoop系统运行压力很大,但是Kubernetes系统并未充分利用。
Hadoop系统运行压力小时,也会出现Hadoop系统资源利用率低的问题。因此,现有技术存在
Hadoop系统资源闲时浪费,忙时不足的问题。
发明内容
率阈值,或所述平均存储资源占用率数据小于预设的第二占用率阈值,确定触发资源调度
条件。
率阈值,或所述平均计算资源占用率数据小于预设的第四占用率阈值,确定触发资源调度
条件。
述Hadoop系统资源的副本实例。
述Hadoop系统资源的副本实例。
最大的NodeManager正在执行任务,等到所述副本ID最大的NodeManager执行任务完成,删
除所述副本ID最大的NodeManager副本实例。
进入冷却期。
数;根据所述各个应用的镜像文件版本信息从镜像仓库获取对应的镜像文件,根据所述各
个应用的副本数和镜像文件,在所述Kubernetes系统中部署所述各个应用。
件。
件。
小于预设的第二占用率阈值,减少所述Hadoop系统资源的副本实例。
DataNode副本实例。
小于预设的第四占用率阈值,减少所述Hadoop系统资源的副本实例。
NodeManager副本实例,如果所述副本ID最大的NodeManager正在执行任务,等到所述副本
ID最大的NodeManager执行任务完成,删除所述副本ID最大的NodeManager副本实例。
骤。
根据所述各个应用的资源占用率数据确定满足触发资源调度条件,且当前不处于预设的冷
却期内时,根据预先设定的资源调度策略进行资源调度,并重新进入冷却期。
数据之后,根据各个应用的资源占用率数据判断是否满足触发资源调度条件,如果满足,并
且判断当前不处于预设的冷却期内,则根据预先设定的资源调度策略进行资源调度。本发
明实施例提供的方案实现了Hadoop系统资源的按需分配,解决了现有技术中Hadoop系统资
源闲时浪费,忙时不足的问题,并且通过设置冷却期,避免了资源调度后,又满足触发资源
调度触发条件反复进行资源调度的问题。
附图说明
领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他
的附图。
具体实施方式
没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
生产环境的运维经验,同时凝聚了社区的最佳创意和实践。
ZooKeeper。
中ResourceManager依赖ZooKeeper。
却期。
对Hadoop系统资源扩容或缩容。
镜像文件加载到Kubernetes系统中;在Kubernetes系统中运行镜像文件,以在Kubernetes
系统中部署Hadoop系统的各个应用。
度,即根据Hadoop系统各个应用的资源占用率数据判断是否需要进行资源扩容或缩容。电
子设备中预先设定触发资源调度条件和资源调度策略,若Hadoop系统各个应用的资源占用
率数据满足触发资源调度条件,则根据预先设定的资源调度策略进行资源调度。具体的,电
子设备分别设定资源扩容条件和资源扩容策略,资源缩容条件和资源缩容策略。若Hadoop
系统各个应用的资源占用率数据满足触发资源扩容条件,则采用资源扩容策略进行资源调
度。若各个应用的资源占用率数据满足触发资源缩容条件,则采用资源缩容策略进行资源
调度。
却期。避免由于资源占用波动,导致的扩容和缩容。
当然,如果当前处于预设的冷却期内,则不进行资源调度。
数据之后,根据各个应用的资源占用率数据判断是否满足触发资源调度条件,如果满足,并
且判断当前不处于预设的冷却期内,则根据预先设定的资源调度策略进行资源调度。本发
明实施例提供的方案实现了Hadoop系统资源的按需分配,解决了现有技术中Hadoop系统资
源闲时浪费,忙时不足的问题,并且通过设置冷却期,避免了资源调度后,又满足触发资源
调度触发条件反复进行资源调度的问题。
的镜像文件。将制作完成的镜像文件推送至镜像仓库,编写ZooKeeper和Hadoop的部署配置
文件,从镜像仓库中获取镜像文件,根据ZooKeeper和Hadoop的部署配置文件,在
Kubernetes系统中部署ZooKeeper、Hadoop系统的JournalNode、NameNode、
ResourceManager、JobHistoryServer、DataNode、NodeManager的应用。
上部署Hadoop集群。由于Hadoop在设计之初就没有考虑过部署在Kubernetes上,所以本方
面实施例的一部分就是如何在Kubernetes集群上部署Hadoop集群。
计算资源CPU占用率、存储资源占用率)的采集。扩容或缩容后,整体占用资源的平均值会下
降。如果扩缩容阈值设置不合理,则可能导致扩容完又触发缩容,缩容完又触发扩容。因此,
需要设置冷却期。避免由于资源占用波动,导致的扩容和缩容。
需要将Hadoop的各个应用部署在Kubernetes集群上。因此第一步需要制作Hadoop各应用的
镜像。
ZooKeeper集群,因此还需要制作ZooKeeper应用的镜像。制作的镜像需要包含适当的配置
文件和支持自动启动对应的应用并组建集群。
版本变动,否则会利用缓存在本地的镜像,不用重复拉取。
NodeManager包含最小和最大个数)、持久化磁盘信息,以及扩容、缩容策略。由于实际部署
环境的差异,该部署配置文件也存在着各种差异,比如CPU和内存分配不同,副本个数不同,
持久化磁盘信息不同等等。该部署配置文件由实施人员在现场部署时进行调整,此处不再
详细举例。
在指定的ZooKeeper镜像,如果不存在则会自动从镜像仓库拉取(下载)镜像。Kubernetes集
群确保本地存在指定版本的ZooKeeper镜像后,会根据部署配置文件创建3副本的
ZooKeeper容器。每个ZooKeeper容器启动后,会先从环境变量中读取副本数(该副本数由
Kubernetes根据部署配置文件中配置信息生成并注入容器),然后启动脚本根据副本数和
服务域名前缀信息,将副本实例的域名信息填入配置文件,并启动ZooKeeper应用。稍后,
ZooKeeper各容器会根据配置信息组建集群。至此,ZooKeeper集群已经在Kubernetes上部
署并组建成功。
JournalNode、2副本的NameNode、1副本的JobHistoryServer、2副本的ResourceManager。
Kubernetes集群会尝试在本地查找是否存在指定的服务镜像,如果不存在则会自动从镜像
仓库拉取(下载)镜像。
副本数(该副本数由Kubernetes根据部署配置文件中配置信息生成并注入容器),然后启动
脚本根据副本数和服务域名前缀信息,将副本实例的域名信息填入配置文件,并启动
JournalNode应用。稍后,JournalNode各容器会根据配置信息组建集群。
副本数、JournalNode的服务域名前缀及副本数、ZooKeeper的服务域名前缀及副本数(这些
信息由Kubernetes根据部署配置文件中配置信息生成并注入容器。由于NameNode应用依赖
JournalNode和ZooKeeper,所以需要这部分信息),然后启动脚本根据JournalNode和
ZooKeeper的服务域名前缀和副本数,将JournalNode和ZooKeeper的副本实例的域名信息
填入配置文件,并启动NameNode应用和ZKFC应用(NameNode和ZKFC必须部署在一个容器内,
ZKFC属于NameNode的辅助进程)。然后,副本ID为0的NameNode负责初始化集群,其中包括格
式化ZooKeeper、格式化JournalNode、生成集群ID等步骤。待初始化后步骤完成后,副本ID
为1的NameNode将从副本ID为0的NameNode中同步集群信息。稍后,NameNode的2个容器就会
组建成主备关系。
读取NameNode的服务域名前缀及副本数(这些信息由Kubernetes根据部署配置文件中的配
置信息生成并注入容器),然后启动脚本根据NameNode的服务域名前缀和副本数,将
NameNode的副本实例的域名信息填入配置文件,并启动JobHistoryServer应用。
中读取 ResourceManager副本数、NameNode的服务域名前缀及副本数、ZooKeeper的服务域
名前缀及副本数、JobHistoryServer的服务域名前缀及副本数(这些信息由Kubernetes根
据部署配置文件中配置信息生成并注入容器。由于ResourceManager应用依赖NameNode、
JobHistoryServer和ZooKeeper,所以需要这部分信息),然后启动脚本根据NameNode的服
务域名前缀和副本数、ZooKeeper的服务域名前缀和副本数、JobHistoryServer的服务域名
前缀和副本数,将NameNode、JobHistoryServer、ZooKeeper的副本实例域名信息填入配置
文件,并启动ResourceManager应用。稍后,ResourceManager的2个容器就会组建成主备关
系。
小副本数和最大副本数,以及扩容和缩容规则。当Kubernetes检测到DataNode各个副本容
器的资源占用情况符合扩容或缩容标准,且实际副本个数在最小副本数和最大副本数之
间,则会触发扩容或缩容操作。Kubernetes集群确保本地存在指定版本的DataNode镜像后,
会根据部署配置文件创建最小副本数的DataNode容器。DataNode容器启动后,会从环境变
量中读取NameNode的服务域名前缀及副本数(这些信息由Kubernetes根据部署配置文件中
的配置信息生成并注入容器。由于DataNode服务依赖NameNode,所以需要这部分信息),然
后启动脚本根据NameNode的服务域名前缀和副本数,将NameNode的副本实例域名信息填入
配置文件,并启动DataNode应用。稍后,DataNode应用会根据配置的NameNode的信息,注册
至NameNode。至此,Hadoop中的HDFS部分已经部署完成。
配置最小副本数和最大副本数,以及扩容和缩容规则(当Kubernetes检测到NodeManager各
个容器的资源占用情况符合扩容或缩容标准,且实际副本个数在最小副本数和最大副本数
之间,则会触发扩容或缩容操作。Kubernetes集群确保本地存在指定版本的NodeManager镜
像后,会根据部署配置文件创建最小副本数的NodeManager容器。NodeManager容器启动后,
会从环境变量中读取ResourceManager的服务域名前缀及副本数(这些信息由Kubernetes
根据部署配置文件中的配置信息生成并注入容器。由于NodeManager应用依赖
ResourceManager,所以需要这部分信息),然后启动脚本根据ResouceManager的服务域名
前缀和副本数,将ResourceManager的副本实例域名信息填入配置文件,并启动
NodeManager应用。稍后,NodeManager应用会根据配置的ResouceManager的信息,注册至
ResouceManager。至此,Hadoop中的Yarn部分已经部署完成。
率阈值,或所述平均存储资源占用率数据小于预设的第二占用率阈值,确定触发资源调度
条件。
数据判断是否满足触发资源调度条件。
值,或平均存储资源占用率数据小于预设的第二占用率阈值,确定触发资源调度条件。
述Hadoop系统资源的副本实例。
系统中HDFS存储资源占用率大于预设的第一占用率阈值,确定满足所述扩容条件;增加所
述Hadoop系统资源的DataNode副本实例;若所述Hadoop系统中HDFS存储资源占用率小于预
设的第二占用率阈值,确定满足所述缩容条件;减少所述Hadoop系统资源的DataNode副本
实例;其中,所述预设的第二占用率阈值小于所述预设的第一占用率阈值。
的副本数量。比如,当前DataNode应用副本数为4,每个副本的存储空间为1TB,实际使用存
储空间分别为:550GB、500GB、600GB、550GB,则平均空间占用率为55%。如果在HPA规则中配
置的缩容条件为空间占用率为60%,扩容条件为空间占用率为90%。HPA控制器通过计算后,
得出合理的副本数应该为3,则会触发缩容,删除多余DataNode服务副本,将DataNode服务
副本数调整为3。需要说明的是:删除DataNode服务副本时,该副本上的数据会在其他
DataNode服务副本上进行恢复,所以实际使用存储总空间是不变的。期望副本数是根据存
储总空间跟实际使用空间计算出来的,其计算公式可以简单的理解为:60%(缩容阈值) <
实际使用存储空间/(副本存储空间*副本数) < 90%(扩容阈值)当HPA控制器计算出来的
DataNode服务的期望副本数量,与当前实际的副本数量不同时,HPA控制器就会向DataNode
服务的副本控制器发起Scale操作,调整DataNode的副本数量,完成扩容、缩容操作。
本控制器发起Scale操作,调整DataNode的副本数量,完成扩容、缩容操作。
DataNode的启动脚本会从环境变量中获取依赖的NameNode信息,并将信息填入配置文件,
并启动DataNode应用。后续,DataNode应用将自动注册到NameNode应用上,至此,HDFS的存
储空间自动扩容就完成了。新的DataNode将承担起部分分布式数据的写入任务。在实际生
产环境中,每次扩容的数量可以为3的倍数,避免扩容后数据不均衡。
本被删除之前,DataNode需要从NameNode上删除自己,避免NameNode认为DataNode是离线,
而不是删除。至此,HDFS的存储空间自动缩容就完成了。剩下的DataNode将承担起全部分布
式数据的写入任务,并且在剩余的DataNode上恢复被删除的DataNode上的数据。DataNode
上的数据,本身会在多个DataNode上存储多份,所以就算删除一个DataNode服务副本,数据
也是可以在其他DataNode上进行恢复的。在实际生产环境中,缩容意味着触发非常耗时数
据恢复,占用集群的带宽,因此缩容会非常的谨慎,即便空间剩余很大,一般不会触发缩容
操作。
个描述信息,用于规定所需的CPU、内存、存储空间,当Kubernetes用同样的描述信息,创建
出一个个的DataNode服务实例,这些服务实例被称为DataNode服务副本(因为是从同一份
描述信息创建出来的)。容器指的是Kubernetes创建出来的实例,这些实例可能是同一个服
务的副本,也可能是不同服务。副本一般是特指某一组容器中的一个,容器就是指某一个容
器。
着分布式存储上的数据副本数减少,会进一步触发文件恢复流程。在文件恢复流程完成之
前,如果再次触发缩容操作,可能会引起数据丢弃。因此缩容的触发条件会设置的比较苛
刻,冷却时间会设置的比较长,以确保缩容对服务影响的平滑。同时,Hadoop集群中的
DataNode可能处于离线状态,这种情况下HDFS的数据副本数不足,同样会进入等待,直至离
线的DataNode恢复正常才会触发缩容流程。
率阈值,或所述平均计算资源占用率数据小于预设的第四占用率阈值,确定触发资源调度
条件。
数据判断是否满足触发资源调度条件。
值,或平均接收资源占用率数据小于预设的第四占用率阈值,确定触发资源调度条件。
第四占用率阈值的大小关系不进行限定。
述Hadoop系统资源的副本实例。
最大的NodeManager正在执行任务,等到所述副本ID最大的NodeManager执行任务完成,删
除所述副本ID最大的NodeManager副本实例。
若所述Hadoop系统中各个NodeManager副本中的平均CPU占用率小于预设的第四占用率阈
值,确定满足所述缩容条件;减少所述Hadoop系统资源的NodeManager副本实例。
(Horizontal Pod Autoscaler)会从Metrics Server上获取这些数据,用于对扩容、缩容规
则进行计算,得到对应NodeManager服务的副本数量。比如,当前NodeManager服务副本数为
4,实际使用CPU占用率分别为:60%、65%、60%、45%,则平均CPU占用率为57.5%。如果在HPA规
则中配置的缩容条件为CPU占用率为60%,扩容条件为CPU占用率为80%。HPA控制器通过计算
后,得出合理的副本数应该为3,则会触发缩容,删除多余NodeManager服务副本,将
NodeManager服务副本数调整为3。需要说明的是:删除NodeManager服务副本并不是立即执
行的,还需要判断该NodeManager副本实例上是否有尚未结束的任务,具体下面有描述。期
望副本数是根据平均CPU占用率计算出来的,其计算公式可以简单的理解为:60%(缩容阈
值) < 平均CPU占用率 < 90%(扩容阈值)。注意,NodeManager缩容,是等待任务结束后才进
行缩容,所以只需要考虑剩余的NodeManager副本的平均CPU占用率即可。
本控制器发起Scale操作,调整NodeManager的副本数量,完成扩容、缩容操作。根据HPA控制
器计算和后续判断逻辑,可以分为以下几种情况:
境变量。NodeManager的启动脚本会从环境变量中获取依赖的ResouceManager信息,并将信
息填入配置文件,并启动NodeManager由于。后续,NodeManager由于将自动注册到
ResouceManager由于上,至此,Yarn的计算资源自动扩容就完成了。新的NodeManager将承
担起部分分布式计算任务的执行。在实际生产环境中,每次扩容只扩容一个副本,避免资源
占用过多,导致利用率不足。
NodeManager副本被删除之前,NodeManager需要从ResouceManager上删除自己,避免
ResouceManager认为NodeManager是离线,而不是删除。至此,Yarn的计算资源自动缩容就
完成了。剩下的NodeManager将承担起全部分布式计算任务的执行。在实际生产环境中,任
务的执行时间和周期不一致,以及调度策略,副本ID最大的NodeManager在整个集群空闲的
情况下,并不一定是空闲的,可能存在遗留任务正在执行的情况,这时需要将这台
NodeManager标记为UnHealthy,标记为UnHealthy的NodeManager不会再被调度执行新的任
务。待所有任务执行完成后,才会触发缩容操作。
须要等待删除的NodeManager副本上的任务执行完毕,在任务执行完毕之前,这个
NodeManager副本会被标记为UnHealthy。因此,NodeManager的实际缩容可能会一次性删除
多个NodeManager副本(某些长时间任务执行完毕后,占用资源同时释放)。
新进入冷却期。
述各个应用的镜像文件版本信息从镜像仓库获取对应的镜像文件,根据所述各个应用的副
本数和镜像文件,在所述Kubernetes系统中部署所述各个应用。
条件。
条件。
的第二占用率阈值,减少所述Hadoop系统资源的副本实例。
例。
的第四占用率阈值,减少所述Hadoop系统资源的副本实例。
副本实例,如果所述副本ID最大的NodeManager正在执行任务,等到所述副本ID最大的
NodeManager执行任务完成,删除所述副本ID最大的NodeManager副本实例。
存储器303通过通信总线304完成相互间的通信;
复之处不再赘述。
Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便
于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
以是至少一个位于远离前述处理器的存储装置。
成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬
件组件等。
用的资源占用率数据确定满足触发资源调度条件,且当前不处于预设的冷却期内时,根据
预先设定的资源调度策略进行资源调度,并重新进入冷却期。
数据之后,根据各个应用的资源占用率数据判断是否满足触发资源调度条件,如果满足,并
且判断当前不处于预设的冷却期内,则根据预先设定的资源调度策略进行资源调度。本发
明实施例提供的方案实现了Hadoop系统资源的按需分配,解决了现有技术中Hadoop系统资
源闲时浪费,忙时不足的问题,并且通过设置冷却期,避免了资源调度后,又满足触发资源
调度触发条件反复进行资源调度的问题。
述电子设备上运行时,使得所述电子设备执行时实现如下步骤:
方法相似,因此处理器在执行上述计算机可读存储介质存储的计算机程序的实施可以参见
方法的实施,重复之处不再赘述。
如CD、DVD、BD、HVD等、以及半导体存储器如ROM、EPROM、EEPROM、非易失性存储器(NAND
FLASH)、固态硬盘(SSD)等。
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序
指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
选实施例以及落入本发明范围的所有变更和修改。
之内,则本发明也意图包含这些改动和变型在内。