YARN 监控管理以资源管理

news2025/2/26 17:52:22

YARN的监控管理和资源管理

  • YARN WebUI V1服务
    • JobHistoryServer服务
      • 配置
    • TimelineServer服务
  • YARN操作维护命令
    • USER用户命令
      • application
      • jar
      • applicationattempt
      • container
      • logs
      • queue
      • node
      • version
    • Admin 管理命令
      • resourcemanager | nodemanager
      • proxyserver
      • daemonlog
      • rmadmin
      • timelineserver
      • scmadmin
  • YARN 资源管理与隔离
    • Memory内存资源
    • CPU资源
  • YARN 资源调度器
    • 调度器策略
        • 工作队列
        • 队列树
      • FIFO Scheduler
        • 优缺点
        • 配置
      • Capacity Scheduler
        • 资源队列划分
        • 特性优势
        • 官方默认配置
        • 相关参数的配置
          • 开启调度器
          • 队列配置
          • 队列属性
        • 动态修改更新配置
      • Fair Scheduler
        • 特性优势
        • 开启与设置
        • 调度器级别配置参数(yarn-site.xml)
          • 核心参数
        • 资源分配文件配置参数(fair-scheduler.xml)


YARN WebUI V1服务

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

首页

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

image-20230512092405038

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来进行查看

image-20230512104940223

启动成功

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

image-20230512110059309

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

image-20230512110140724

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

image-20230512110312692

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选项查看帮助文档

image-20230512111448532

常用选项

# 查看所有的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包

image-20230512113156785

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

image-20230512114813079

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进行配置

image-20230513091109775

工作队列

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

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

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

image-20230513091419537

队列树

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

image-20230513092403756

FIFO Scheduler

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

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

image-20230513092818970

优缺点

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

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

配置

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

image-20230513095029528

资源队列划分

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

image-20230513095450122

特性优势

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

官方默认配置

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

image-20230513100712411

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

image-20230513101327061

相关参数的配置

开启调度器

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

image-20230513102201514

如果不是,那么就在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>是可选选项,这里举个例子

image-20230513102929913

队列属性

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

image-20230513103306037

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

队列资源的上限

image-20230513103415417

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

每个资源占用最少资源
image-20230513103531150

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

每个用户最多使用的队列资源占比
image-20230513103720638

如果设置为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%)

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

image-20230513110920398

在默认情况下,所有用户共享一个名为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格式
主要包括队列的层次、调度策略(整体策略和每隔队列内策略)、队列设置及使用限制、抢占功能配置、最大最小资源、资源限制等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/520707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jenkins+springboot+gitee自动化部署项目

1、新建 maven项目我取名first 2、点击项目进行配置 3、源码管理配置 4、新建 stop.sh脚本 4、vim 编辑stop.sh脚本,build前停止jar #!/bin/bash # 获取jar包的pid pidps -ef | grep java | grep projectmonitor | awk {printf $2} if [ ! -z $pid ]; then kill -9 $pid …

Java面向对象三大特性封装和private关键字

目录 友情提醒一、Java面向对象的三大特性之封装1&#xff09;概念和好处2&#xff09;封装案例①访问权限修饰符&#xff08;private&#xff09;②构造方法与gette&setter方法③具体的封装案例 友情提醒 先看文章目录&#xff0c;大致了解知识点结构&#xff0c;直接点击…

苹果mac清理软件CleanMyMac X v4.13兼容13系统,堪称Mac最好的系统清理工具

CleanMyMac X for mac是MacOS上一款Mac清理优化工具&#xff0c;不仅包含各种清理功能&#xff0c;更是具有卸载器、维护、扩展、碎纸机这些实用功能&#xff0c;可以同时代替很多工具。它可以清理&#xff0c;优化&#xff0c;保养和监测您的电脑&#xff0c;确保您的Mac运行…

cleanmymac x 4.13新功能介绍,cleanmymac x怎么取消订阅

CleanMyMac X4.13版是一款运行在macOS系统中的专业清理软件&#xff0c;以安装方便、使用简易、功能完善等特点而闻名。CleanMyMac X在功能方面可以说是做到了极致&#xff0c;下面让我们看一下CleanMyMac X都包含有哪些功能。 CleanMyMac X是一款专业的Mac清理软件&#xff0c…

文件批量改名#批量修改文件名称中有特殊符号

在日常工作中&#xff0c;相信大家都会碰到&#xff0c;需要有修改文件名或文件夹名称等&#xff0c;修改方法也是很多种&#xff0c;如果遇到文件名有特殊符号&#xff0c;要如何把特殊符号删除或替换成自己需要的文字或其他表情符号呢。一般大家都是手动去修改&#xff0c;如…

安装和使用分布式HDFS系统在CentOS 8上进行文件上传操作

文章目录 实验目的和背景实验目的实验背景 实验过程步骤1&#xff1a;安装Java步骤2&#xff1a;下载hadoop-3.3.1.tar.gz步骤3&#xff1a;创建一个普通用户来运行Hadoop Hadoop 概念Hadoop 整体设计HDFSHDFS 的节点命名节点 (NameNode)数据节点 (DataNode)副命名节点 (Second…

语义分割学习笔记(四)膨胀卷积

推荐课程&#xff1a; 1.膨胀卷积_哔哩哔哩_bilibili&#xff08;膨胀卷积原理讲的很清楚&#xff09; 2.膨胀卷积(Dilated convolution)详解&#xff08;gradding effect问题和解决方法讲的很清楚&#xff09; 感谢博主霹雳吧啦Wz / 太阳花的小绿豆和Enzo_Mi提供视频讲解和源…

C++ OpenCV编译安装教程

文章目录 环境说明Cmake编译配置编译前配置编译选项开始正式编译安装 编写代码测试参考文章 环境说明 win10 MinGW64 Cmake 下载mingw64 (版本&#xff1a;12.1.0 posix-seh) 下载Cmake (版本3.17.5) 注&#xff1a;mingw64和cmake下载安装完成后记得把bin目录添加到【环境…

Video Grounding

一些工作能够检测包含特定动作的视频片段&#xff0c;一般称 为动作检测&#xff08;action detection&#xff09;或视频中的时序动作定位&#xff08;Temporal Action Grounding in Videos&#xff0c;TAGV&#xff09; 然而&#xff0c; TAGV 受限于预先定义的动作类别集合…

基于html+css的图展示57

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

母亲节:向世界上最伟大的母爱致敬

在这世间众多的亲情关系中&#xff0c;有一种关系无与伦比&#xff0c;毫不费力地凌驾于其他任何已知的地球关系之上。这种非凡的关系就是母亲与子女之间的关系。 母亲对家庭无尽的爱、奉献和忠诚使这份感情无价。为了向全球所有母亲表示敬意&#xff0c;母亲节在世界46个国家庆…

如何用ChatGPT拆解爆款内容(文章/脚本)、提出修改意见,再根据修改意见,最终成稿?

该场景对应的关键词库&#xff08;11个&#xff09;&#xff1a; 示例内容、爆款库、内容类型、拆解角度、亮点、不足、修改建议、文案、风格、文章、脚本 提问模板&#xff08;4个&#xff09;&#xff1a; 第一步&#xff1a;建立自己的爆款库&#xff0c;并选择其中1个爆款…

路径规划算法:基于鲸鱼优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于鲸鱼优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于鲸鱼优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法鲸鱼…

SpringBoot通过自定义注解整合Redisson实现分布式锁(单机+集群模式)

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; SpringBoot通过自定义注解整合Redisson实现分布式锁 ⏱️ 创作时间&am…

低代码信创开发核心技术(一):基于Vue.js的描述依赖渲染DDR实现模型驱动的组件

前言 随着数字化转型的不断发展&#xff0c;低代码开发平台已成为企业快速建立自己的应用程序的首选方案。然而&#xff0c;实现这样一个平台需要具备高效、灵活和可定制化的能力。这正是基于描述依赖渲染&#xff08;Description dependency rendering&#xff09;所实现的。…

Jenkins 发布到 windows 主机

由于一些原因, 最近程序部署在windows 服务器上比较多, 本文以将前端程序发布到windows server 2016 为例进行介绍 流程 需考虑网络联通性, 此处我的目标服务器没有公网固定IP, 故采用vpn 工具组网 步骤: 一、使用执行SSH脚本的方式 1. 在jenkins 服务器及目标机器上安装 VP…

Windows终端中文乱码,查看系统默认编码及修改系统默认编码

最近windows升级之后出现一个问题&#xff0c;终端出现了乱码&#xff0c;导致启动程序启动不起来。 window系统如何查看系统默认编码 方式一&#xff1a; 在Windows平台下&#xff0c;winr 打开运行—》输入cmd进入cmd窗口&#xff0c;输入&#xff1a;chcp 可以得到操作系统…

会声会影2023是什么软件,会声会影和pr到底哪个好

图1是pr&#xff08;premiere&#xff09;平时大家可能会经常听到有人说会声会影2023&#xff0c;但是很多人都不知道这是什么软件。其实听它的名字就知道这是一款和声音、影像有关系的软件。下面&#xff0c;小编就来给大家具体介绍一下这款软件吧。 会声会影2023是什么软件&…

微信客服对接-唯一客服系统文档中心

微信客服官方网址为&#xff1a;https://kf.weixin.qq.com &#xff0c;可以在微信内、外各个场景中接入微信客服&#xff0c;提供一致的咨询体验&#xff0c;企业可通过API接口回复消息&#xff0c;做好客户服务。 微信客服或者也可以叫企业微信客服&#xff0c;可通过API接口…

CSS平面转换和渐变

01-平面转换 简介 作用&#xff1a;为元素添加动态效果&#xff0c;一般与过渡配合使用 概念&#xff1a;改变盒子在平面内的形态&#xff08;位移、旋转、缩放、倾斜&#xff09; 平面转换也叫 2D 转换&#xff0c;属性是 transform 平移 transform: translate(X轴移动距…