YARN 监控管理以资源管理

这篇具有很好参考价值的文章主要介绍了YARN 监控管理以资源管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


YARN WebUI V1服务

YARN提供了一个WebUI v1服务,该服务属于内置服务,随着RM的启动而启动,V1表示这是第一代版本的WebUI服务,用户可以通过浏览器登陆界面,来监控集群、队列、应用程序、服务、节点信息,还可以查看集群详细配置的信息,检查各种应用程序和服务的日志

首页

浏览器输入http://RM_HOST:8088 访问YARN WebUI服务,浏览器打开后以列表的形式展示处于各种状态的各种应用程序,入MapReduce应用程序、Spark应用程序、Flink应用等。

YARN 监控管理以资源管理

JobHistoryServer服务

在默认情况下,YARN RM重启之后,已完成的作业和正在执行的作业信息都会丢失,针对正在执行的作业恢复,可以设置RM重启机制回复,如果没有开启则全部丢失。JobHistoryServer(JHS)属于YARN的一项系统服务,进存储与已经完成的MapReduce应用程序的作业历史信息,并不会存储其他类型(如spark、flink等)应用程序的作业历史信息,当启用JHS服务时,建议开启日志聚合红能,利于统一管理和分析日志,否则每隔Container的运行日志是存储在NodeManager节点本地,查看日志时需要访问各个NodeManager节点

配置

Step1 :mapred-site.xml 添加JHS配置

<!--jobhistory 服务配置,注意19888是web ui访问端口-->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop132-father:10020</value>
</property>
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop132-father:19888</value>
</property>

Step2:yarn-site.xml 添加日志聚合配置

<!--开启yarn日志聚合功能,手机每个容器的日志 集中存储在同一个地方-->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<!--设置日志保留时间: 1天-->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>86400</value>
</property>
<property>
    <name>yarn.log.server.url</name>
    <value>hadoop132-father:19888/jobhistory/logs</value>
</property>

**step3:集群同步配置文件 **

# 我们采用scp进行同步
scp yarn-site.xml mapred-site.xml hadoop133:$PWD
scp yarn-site.xml mapred-site.xml hadoop134:$PWD

启动Hadoop集群、手动启动JHS服务

# 启动hadoop
start-all.sh
# 启动JHS服务
mapred -- daemon start historyserver

我们通过JPS来进行查看

YARN 监控管理以资源管理

启动成功

我们前往相关页面(在配置文件中有设置的信息,我设置的hadoop132-father:19888,在使用的时候根据自己在step1 的设置进行相关的操作)

YARN 监控管理以资源管理

在这里可以直接进行查看相关信息,在这里我们可以直接看到启动了多少个Map、多少个Reduce,以及运行的结果:多少个运行成功,多少个运行失败。

YARN 监控管理以资源管理

同时也可以看到在哪台机器上运行的,点击一下可以查看更加详细的信息:比如说最后一次心跳是什么时候

YARN 监控管理以资源管理

TimelineServer服务

由于JobHistoryServer进队MapReduce应用程序提供历史信息支持,其他应用程序的历史信息需要分别提供单独的HistoryServer才能查询和检索,例如Spark的Application需要通过Spark自己提供的HistoryServer来解决应用历史信息,为了解决这个问题YARN新增了Timeline Server组件,以通用的方式存储和检索应用程序当前和历史信息在中文语境下,将Timeline Server称之为时间轴服务

作用

  • 存储应用程序的特定信息
    手机和检索指定应用程序或者框架的某些信息,例如Hadoop的MR框架会产生像Map Task数量、Reduce Task数量 Counter等信息,应用开发人员可以通过TimelineClient,在Application Master或者Container中将特定的程序发送给Timeline服务器,同时Timeline 提供RESTAPI ,用以查询Timeline中存储的信息,并可以通过应用程序或者框架的特定UOI进行展示
  • 保存已经完成应用程序的常规信息
    在之前此功能只能通过JobHistoryServer 实现,并且仅支持MR Job,随着Timeline服务出现,JobHistoryServerv的功能看成了Timeline的一部分

YARN操作维护命令

USER用户命令

application

使用方法

yarn application [options]

可以直接使用 --help选项查看帮助文档

YARN 监控管理以资源管理

常用选项

# 查看所有的application 仅显示状态为SUBMITTED ACCEPTED RUNNING 应用
yarn application -list
# 查看状态为ALL的application 列表
yarn application -list -appStates ALL
# 杀死某个Application
yarn application -kill Application-ID
#查看某个Application的统计报告
yarn application -status Application-Id
# 查看类型为MAPREDUCE 的Application列表
yarn application -list -appTypes MAPREDUCE 
# 移动一个Application 到default队列中
yarn application -movetoqueue Application-ID -toqueue default
#移动一个Application 到优先队列中
yarn application -updatePriority 优先级 -appId Application-ID

jar

这个方法经常使用,我们通常运行jar 包都是通过这条命令运行的

yarn jar xxx.jar [mainClass] args

通常在${HADOOP_HOME}$/share/hadoop/mapreduce下官方放置了一些可供测试的jar包

YARN 监控管理以资源管理

applicationattempt

使用方法

yarn applicationattempt [options]

applicationattempt可以理解为一个app应用内部的一次尝试执行过程,

相关操作

#标记某一次applicationattempt 失败
yarn applicationattempt -fail Appattempt-ID
# 查看某个应用所有的attempt 
yarn applicationattempt -list Application-ID
# 查看具体某一个applicationattempt 的报告
yarn applicationattempt -status Appattempt-ID

container

使用方式

yarn container [options]

可以根据attemptID操作作业的Container相关信息

常用操作

# 列出指定attemptID所有的container信息
#attemptID可以从RM web UI或者时间轴服务[Timeline Server]上获取
yarn container -list Application_Attempt-ID
# 打印容器的状态
yarn container -status Container-ID

logs

使用方法

#日志相关操作命令
yarn logs -applicationId ApplicationID [options]

常用命令

#查看应用程序所有的logs 此操作需要慎重 显示内容比较多
yarn logs -applicationId ApplicationID
# 置顶显示内容大小
yarn logs -applicationId ApplicationID -size size
# 查看应用程序某个container运行所在的节点的log
yarn logs -applicationId ApplicationID -containerId containerId

queue

使用方式

# 队列相关的操作命令
yarn queue [options]

常用命令

#查看某个queue 的状态,
yarn queue -status queue-name

node

使用方法

# 集群节点操作命令
yarn node [options]

常用的相关操作

#查看yarn所有从节点
yarn node -list -all
# 查看所有 正在运行的节点
yarn node -list -states RUNNING
# 查看yarn所有节点的详细
yarn node -list showDetails
#查看yarn某个节点的报告
yarn node -status 节点

version

查看版本号

yarn version

YARN 监控管理以资源管理

Admin 管理命令

resourcemanager | nodemanager

使用方法

# 针对RM的操作命令
yarn resourcemanager [optinons]

常用操作

# 启动某个节点的resourcemanager
yan resourcemanager
# 启动某个节点的nodemanager
yarn nodemanager
#格式化resourcemanager的RMStateStore
yarn resourcemanager -format-state-stroe
# 删除RMStateStore的Application
yarn resoucemanager -remove-application-from-state-stroe ApplicationID

proxyserver

使用方式

#启动某个节点的proxyserver,使用代理的原因是为了减少通过YARN进行基于Web的攻击的可能性
yarn proxyserver

YARN Proxy Server 服务需要提前配置

<property>
    <name>yarn.web-proxy.address</name>
    <value>hadoop132-father:8089</value>
</property>

daemonlog

使用方法

yarn daemonlog -getlevel <host:httpport> <classname>
yarn daemonlog -setlevel <host:httpport> <level>

常用命令

# 查看帮助
yarn daemonlog
#查看RMApplmpl的日志级别
yarn daemonlog -getlevel hadoop132-father:8088 0rg.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApplmpl

rmadmin

使用方式

# 这个命令比较重要 使用的也比较多
yarn rmadmin [options]

常用命令

# 重新加载mapred-queues 配置文件
yarn rmadmin -refreshQueues
#刷新ResouceManager的主机信息
yarn rmadmin -refreshNodes
# 在Resourcemanager上刷新NodeManager的资源
yarn readmin -refreshNodesResources
# 刷新超级用户代理组映射
yarn readmin -refreshSuperUserGroupsConfiguration
# 刷新ACL以管理ResourceManager 
yarn readmin -refreshAdminAcls
#获取Resourcemanager服务的Active/standby状态
yarn rmadmin -getAllServiceState
# ResourceManager服务执行健康检查,如果检查失败RMAdmin工具将使用非零退出码退出
yarn rmadmin -checkHealth rm1
rarn rmadmin -checkHealth rm2

timelineserver

使用方式

# 启动时间轴服务 通常使用第二条进行启动
yarn timelineserver
yarn-daemon.sh start timelineserver

时间轴服务Web UI 端口 8188

scmadmin

使用方法

# scmadmin 是ShareCacheManager (共享缓存管理)的管理客户端
yarn scmadmin

常用命令

# 执行清理任务
yarn scmadmin -runCleanerTask
#先启动SCM服务
yarn-daemon.sh start sharecachemanager

YARN 资源管理与隔离

在YARN中资源管理由ResourceManager和NodeManager共同完成,其中ResouceManager中的调度器负责资源的分配,而NodeManager负责资源的供给与隔离。

资源调度分配:ResourceManager将某个NodeManager上资源分配给任务
资源隔离:NodeManager按照需求为任务提供相应的资源,甚至保证这些资源具有独占性,为任务运行提供基础的保证

Hadoop YARN同时支持内存和CPU两种资源的调度,内存资源的多多少少会决定任务的生死,如果内存不够,任务可能会运行失败,相比之下CPU资源则不同,他只会决定任务运行的快慢,不会对生死产生影响

Memory内存资源

YARN允许用户配置每个节点上课用的物理内存资源;这里是“可用的”,因为一个节点上的内存会被若干个服务共享,比如说一部分分给YARN,一部分分给HDFS,一部分分给HBase,YARN配置的只是自己可以使用的

配置核心参数

  1. yarn.nodemanager.resource.memory-mb
    该节点上YARN可以使用的物理内存总量,默认为8192MB
    如果设置为-1,并且yarn.nodemanager.resource。detect-hardware-capabilities 为true时将会自动计算操作系统内存进行设置
  2. yarn.nodemanager.vmem-pmem-ratio
    任务每使用1MB物理内存,最多可以使用虚拟内存量,默认为2.1
  3. yarn.nodemanager.peme-check-enabled
    是否启动一个线程检查每个任务正在使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认为true
  4. yarn nodemanager.veme-check-enable
    是否启动一个线程检查每个任务正在使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认为true
  5. yarn.scheduler.minimum-allocation-mb
    单个任务可以申请的最少物理内存量,默认为1024MB,如果一个任务申请的物理内存量少于该值,则该对应的值改为这个数
  6. yarn.scheduler.maximum-allocation-mb
    单个任务可以申请的最多物理内存量 最多为8192MB

在默认情况下,YARN采用了线程监控的方法判断任务是否超量使用内存,一旦发现超量,则直接将其杀死,对于Cgroups对内存的控制缺乏灵活性(即任务任何时刻不能超出内存上线,如果超过,则直接将其杀死或者报OOM),而Java进程在创建瞬间内存将翻倍,之后骤降到正常值,采用线程监控的方式更加灵活(当发现内存树内存瞬间翻倍超过设定值时,可认为是正常现象,不会将任务杀死),因此YARN未提供Cgroups内存隔离机制

CPU资源

在YARN中CPU资源的组织方式人在探索中,之前只是非常粗粒度的实现方式。
CPU被划分为虚拟CPU,此处的虚拟CPU时YARN自己引入的概念,初衷是考虑到不同节点的CPU性能可能不同,每个CPU具有的计算能力也是不一样的,比如说某个物理CPU的计算能力可能是另一个的2倍,此时可以通过为第一个物理CPU多配置几个虚拟CPU来弥补这个差异。
用户提交作业,可以指定每个任务需要的虚拟CPU个数.
由于CPU资源的独特性,目前这种CPU分配方式仍然是粗力度的

核心参数配置

  1. yarn.nodemanager.resource.cpu-vcores
    该节点上YARN可以使用的虚拟CPU个数,默认是8,注意,目前推荐将该值设置为与物理CPU核数数目相同,如果你的节点CPU核数不够8个,则需要减少这个值
    如果设置为-1,并且yarn.nodemanager.resource.detect-hardware-capabilities 为true时将会自动计算操作系统CPU核数进行设置
  2. yarn.scheduler.minimum-allocation-vcores
    单个任务可申请的最小CPU个数,默认为1,如果一个任务申请的CPU个数西澳娱该数,则该对应的值修改为这个数
  3. yarn.scheduler.maximum-allocation-vcores
    单个任务可申请的最多虚拟CPU个数,默认为4

YARN 资源调度器

在理想情况下,应用程序提出的请求将立即得到YARN批准,但是实际工作中,资源是有限的,并且在繁忙的集群上,应用程序通常将需要等待其某些请求得到满足。YARN调度程序的工作是根据一些定义的策略为应用程序分配资源

在YARN中,负责给应用程序分配资源的是Scheduler,他是ResourceManager的核心组件之一,Scheduler完全专用于调度作业,他无法跟踪应用程序的状态
一般而言,调度是一个难题,并且没有一个最佳策略,为此,YARN提供了多种调度器和可配置的策略供其选择

调度器策略

一共有三种调度器:FIFO Scheduler(先进先出调度器)、Capacity Scheduler(容量调度器)、Fair Scheduler(公平调度器)

Apache 版本YARN默认使用的FIFO Scheduler,如果需要使用其他调度器,可以在yarn-site.xml中的yarn.resourcemanager.scheduler.class进行配置

YARN 监控管理以资源管理

工作队列

工作队列Queue是从不同客户端收到的各种任务的集合

YARN 默认只有一个可用于提交任务的队列,叫做default,当然用户也可以配置队列形成队列树结构

Scheduler的本质就是根据何种规则策略去分配资源给队列中的任务

YARN 监控管理以资源管理

队列树

在YARN中有层级队列组织方法,它们构成一个树结构,且跟队列叫做root。所有的应用都运行在叶子队列中(即树结构中的非叶子节点只是逻辑概念,本身不能运行应用)。对于任何一个应用,都可以显式的指定它属于的队列,也可以不指定从而使用username或者default队列,在YARN WebUI界面可以看到默认的队列组织情况

YARN 监控管理以资源管理

FIFO Scheduler

FIFO Scheduler时Hadoop 1.x中JobTracker原有的调度器实现,次调度器在YARN中保留了下来,是一个先进先出的思想,即先提交的应用先运行,调度工作不考虑优先级范围,适用于负载较低的小规模集群,当使用大型共享集群的时候,它的效率低且会导致一些问题

FIFO Scheduler拥有一个控制全局的队列queue,默认queue的名字为default,该调度器会获取当前集群上所有资源信息作用域这个全局的queue

优缺点

优点
无需配置、先到先得,易于执行

缺点
任务的优先级不会变高,因此高优先级的作业需要等待,不适合共享集群

配置

在Hadoop YARN中启用FIFO调度程序,修改yarn-site.xml即可

<property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.sheduler.fifo.FifoScheduler</value>
</property>

Capacity Scheduler

Capacity Scheduler 容量调度时Apache Hadoop3.x 默认调度策略。该策略允许多个组织共享整个集群资源,每隔组织可以获得集群的一部分计算能力。通过为每个组织分配专门的队列,然后再为每隔队列分配一定的集群资源,这样整个集群就可以通过设置多个队列的方式给多个组织提供服务

Capacity 可以理解为一个个资源队列,这个资源队列是用户自己去分配的,队列内部有可以采用垂直划分,这样一个组织内部的多个成员就可以共享这个队列资源了,在一个队列内部,资源的调度采用的先进先出策略

YARN 监控管理以资源管理

资源队列划分

Capacity Scheduler调度器以队列为单位划分资源,通俗来说,就是一个个队列有独立的资源,队列的结构和资源是可以进行配置的
在队列内部又可以继续划分出子队列,子队列在父队列的基础上再进行资源的划分。每个队列里面的应用以FIFO方式调度,每个队列可以设定一定比例的资源最低保证和使用上限防止滥用,当一个队列的资源有剩余是,可暂时将剩余资源共享给其他队列

YARN 监控管理以资源管理

特性优势

层次化的队列设计: 层次化的管理,可以更容易、更合理分配和限制资源的使用
容量保证:每个队列上都可以设置一个资源的占比,保证每个队列都不会占用整个集群的资源
安全:每隔队列都有严格的访问控制,用户只能向自己的队列里面提交任务,而不能修改或者访问其他队列的任务
弹性分配:空闲的资源可以被分配给任何队列,当多个队列出现争用的时候,则会按照权重比例进行平衡
多租户租用:通过队列的容量限制,多个用户就可以共享一个集群,同时保证每个队列分配到自己的容量,提高利用率
操作性:YARN支持动态修改队列容量、权限等分配,可以在运行时直接修改
基于用户/组的队列隐射:允许用户基于用户或者组去映射一个作业到特定队列

官方默认配置

由于Hadoop默认调度策略就是Capacity,因此官方自带默认配置capacity-scheduler.xml

YARN 监控管理以资源管理

默认配置中显示全局只有一个队列default,占集群整体容量100

相关参数的配置
开启调度器

如果是Hadoop 3.x的话默认就是Capacity

YARN 监控管理以资源管理

如果不是,那么就在yarn-site.xml中进行开启

<property>
	<name>yarn.resourcemanager.scheduler.class</name>
	<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
队列配置

Capacity的核心就是队列的分配和使用,修改capacity-scheduler.xml文件可以配置队列,默认有一个预定义的队列root,所有的队列都是他的子队列。队列的分配支持层次化配置,同级之间使用,来进行分割
配置方法:yarn.scheduler.capacity.<queue-path>.queues,其中<queue-path>是可选选项,这里举个例子

YARN 监控管理以资源管理

队列属性

队列的资源容量占比(百分比)

YARN 监控管理以资源管理

系统繁忙时,每隔队列都应该得到设置的量的资源,当系统是空闲的时候,该队列的资源则可以被其他队列使用。同一层所有的队列加起来必须时100%

队列资源的上限

YARN 监控管理以资源管理

系统空闲时,队列可以使用其他空闲的资源,因此最多使用的资源量应则是该参数控制。默认是-1 表示禁用

每个资源占用最少资源
YARN 监控管理以资源管理

比如,设置成25%,那么如果有两个用户提交任务,那么每个资源不超过50%,如果三个资源提交任务,那么每个任务资源不超过33%默认时100,表示不做任何限制

每个用户最多使用的队列资源占比
YARN 监控管理以资源管理

如果设置为50,那么每个用户最多使用的资源就是50%

运行和提交应用限制、队列管理等可以查看官方文档:(

动态修改更新配置

修改完成capacity-sheduler.xml之后,需要执行yarn rmadmin -refreshQueues命令让配置生效,
动态更新生效的注意事项:

  1. 队列不能被删除,只能是新增
  2. 更新队列的配置需要是有效的值
  3. 同层级的队列容量限制加起来需要等于100%

Fair Scheduler

Fair Scheduler叫做公平调度,提供了YARN应用程序公平的共享大型集群中资源的另一种方式,使所有应用在平均情况下随着时间的六十可以获取相等的资源份额。
Fair Scheduler设计目标是为所有的应用分配公平的资源(对公平的定义通过参数来设置)
公平调度可以在多个队列间工作,允许资源共享和抢占

如何理解公平共享?
有两个用户A和B,每个用户都有自己的队列,A启动了一个作业,由于没有B的需求,他分配了集群所有可用的资源(此时A占用100%)
然后B在A运行的时候 启动了一个作业,经过一段时间,AB各自作业都使用了一半的资源(A释放了50%,现在还有50%,B接受了50%,现在也有50%)
现在B用户在其他作业运行的时候开始了第二个作业,他将于B的另一个作业共享资源,因此B的每个作业将拥有资源的四分之一,而A继续拥有一半的资源(A 不变仍未50%,B1释放25% 变为了25%,B2接收了25% 成为了25% ,现在B整体仍然为50%)

资源是在用户之间公平的共享的

YARN 监控管理以资源管理

在默认情况下,所有用户共享一个名为default的队列,可以在提交应用时指定队列,也可以通过配置根据请求中包含的用户名来分配队列,在每个队列中,使用调度策略在运行的应用程序之间共享资源,默认设置时基于内存的公平共享

特性优势

分层队列:队列可以按层次结构排列以划分资源,并可以配置权重以特定比例共享集群

基于用户/组队列映射:可以根据提交任务的用户名或者组来分配队列。如果任务队列制定了一个队列,则在该队列中提交任务

资源抢占:根据应用的配置,抢占和分配资源可以是友好的或者是强制的,默认不启用资源抢占

保证最小配额:可以设置队列最小资源,允许将保证的最小配额给队列,保证用户可以启动任务,当队列不能满足最小资源时,可以从其他队列抢占,当队列资源使用不完时,可以给其他队列使用,这对于确保某些用户、组或者生产应用始终满足资源

允许资源共享:当一个应用运行时,如果其他队列没有任务在执行,则可以使用其他队列的资源,当其他队列有应用需要资源时再将占用的队列释放出来,所有的应用都从资源队列中分配资源

默认不限制某个队列和用户可以同时运行的应用的数量:可以配置限制队列和用户并行执行的应用数量,限制并行执行应用数量不会导致任务提交失败,超出的应用会在队列中等待

开启与设置

开启|设置 Fair Scheduler通常涉及两个配置文件:

yarn-site.xml
Scheduler调度器级别的有关选项,比如开启、指定资源配置文件路径、抢占功能

fair-scheduler.xml
资源分配文件,用来列举存在的queues和他们相应的weights和capacities,allocation 文件每隔10s加载一次,若没有fair-scheduler.xml这个配置文件,调度器会在用户第一个提交应用时为其自动创建一个队列,队列的名称就是用户名,所有的应用都会被分配到相应的用户队列中。

<property>
    <name>yarm.resourcemanager.shceduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
<property>
    <name>yarn.schedeler.fair.allocation.file</name>
    <!--如果不指定全路径,表示在配置文件的路径下,通常指定全路径-->
    <value>fair-scheduler.xml</value>
</property>
调度器级别配置参数(yarn-site.xml)
核心参数
#fair 资源分配文件的路径
yarn.scheduler.fair.allocation.file
#如果未指定队列名,一用户名作为队列名 实现了根据用户自动分配队列
yarn.shceduler.fair.user-as.defalut.queue
#是否使用preemption(优先权、抢占) 否认false
yarn.scheduler.fair.preemption
#抢占开始后的利用率阈值
yarn.scheduler.fair.preemption.cluster-utilization-threshold
#是否根据大小分配额分给单个应用程序,而不是给所有应用程序分配均等的额分,而不管大小如何
yarn.scheduler.fair.sizebasedweight
资源分配文件配置参数(fair-scheduler.xml)

分配文件必须为xml格式
主要包括队列的层次、调度策略(整体策略和每隔队列内策略)、队列设置及使用限制、抢占功能配置、最大最小资源、资源限制等文章来源地址https://www.toymoban.com/news/detail-447501.html

到了这里,关于YARN 监控管理以资源管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 38、springboot为 spring mvc 提供的静态资源管理,覆盖和添加静态资源目录

    ▲ 默认的四个静态资源目录: /META-INF/resources /resources /static /public ▲ ResourceProperties.java类的源代码,可看到CLASSPATH_RESOURCE_LOCATIONS常量的定义: CLASSPATH_RESOURCE_LOCATIONS = new String[]{“classpath:/META-INF/resources/”, “classpath:/resources/”, “classpath:/static/”, “classpath:/public/”}; 这意味

    2024年02月11日
    浏览(43)
  • Kubernetes学习笔记-计算资源管理(4)监控pod的资源使用量20230219

    前面学了设置资源的requests和limits,这节课学习如何监控资源,根据监控资源使用情况,对requests和limits进行合理配置。 kubelet包含一个agent,名为cAdvisor,它会收集整个节点上运行的所有单独容器的资源消耗情况,这些信息可以通过一个附加组件Heapster来集中统计整个集群的监

    2024年02月05日
    浏览(44)
  • 【IPAM】Netbox —— 一个公认好用的开源网络资源管理系统

    NetBox 是一个 IP 地址管理(IP address management,IPAM)和数据中心基础设施管理(data center infrastructure management,DCIM)工具。最初起源于 DigitalOcean 的网络工程团队,专门用于满足网络和基础设施工程师的需求。它是一个基础设施资源建模 (IRM) 应用程序,旨在支持网络自动化。N

    2024年02月08日
    浏览(42)
  • SwiftUI 实现一个 iOS 上 Files App 兼容的文件资源管理器

    在 SwiftUI 中自己白手起家写一个 iOS(或iPadOS)上迷你的文件资源管理器是有些难度滴,不过从 iOS 11 (2017年) 官方引入自家的 Files App 之后,我们就可以借助它的魔力轻松完成这一个功能了。 如上所示,我们使用 SwiftUI 原生功能完成了一个小巧的 iOS Files App 文件管理器,

    2024年02月10日
    浏览(51)
  • 华为云命令行工具服务KooCLI助力一键管理云资源

    对于CLI即命令行工具,运维同学可能并不陌生,它摒弃了对图形化界面的需求,不再拘泥于可视化的页面切换、按钮点击等操作,反而为用户提供了一个便捷且高控制的解决方案,使用户在日常的运维工作中,用一行命令即可实现对资源的管理,效率提升显而易见。 华为云命

    2024年02月16日
    浏览(81)
  • 【Kubernetes资源篇】StatefulSet无状态服务管理入门实战详解

    官方中文参考文档 1、StatefulSet Pod控制器特性 StatefulSet(简写sts)也是K8S集群中的一种Pod资源管理器,与deployment Pod控制器不同的是,StatefulSet用于管理无状态程序,特性如下: 稳定的网络标识符:管理的Pod都拥有一个稳定的网络标识符。可以通过网络标识符进行访问。 有序部署

    2024年02月13日
    浏览(36)
  • pod的requests、limits解读、LimitRange资源配额、Qos服务质量等级、资源配额管理 Resource Quotas

    环境: k8s-v1.22.17 docker-20.10.9 centos-7.9 CPU、GPU、Memory等都是计算资源,所谓计算资源,就是可计量的、能被申请的、能被分配使用的资源。 CPU在容器技术中属于可压缩资源,因此,pod对CPU的使用超过其cpu.limit限制一般不会导致容器被系统\\\"杀死\\\",而Memory属于不可压缩资源,当容

    2023年04月27日
    浏览(37)
  • CNStack 虚拟化服务:实现虚拟机和容器资源的共池管理

    容器无疑已经成为新的云计算基础设施,企业私有云平台的建设重心,正在从虚拟化的计算、存储、网络的建设,转向构建以容器、微服务等为核心的云原生平台。不过值得注意的是,企业 IT 系统在进行容器化改造的过程中,由于历史遗留系统、技术债务、内核依赖等原因,

    2024年01月25日
    浏览(99)
  • 云原生可观察性的基本理念和方法论:可观察性(Observability)是指系统内部的运行过程可以被检测、分析、记录和展示出来,从而对系统行为、资源利用、健康状况、安全情况等进行监控和管理

    作者:禅与计算机程序设计艺术 可观察性(Observability)是指系统内部的运行过程可以被检测、分析、记录和展示出来,从而对系统行为、资源利用、健康状况、安全情况等进行监控和管理。可观察性是云原生时代的一个重大发展方向,也是机器学习、微服务、容器技术、D

    2024年02月13日
    浏览(58)
  • K8S资源管理之计算资源管理

            以CPU为例,下图显示了未设置Limits与设置了Requests和Limits的CPU使用率的区别        尽管Requests和Limits只能被设置到容器上,但是设置了Pod级别的Requests和Limits能大大提高管理Pod的便利性和灵活性,因此在Kubernetes中提供了对Pod级别的Requests和Limits的配置。对于CP

    2024年04月15日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包