当前位置: 首页 > news >正文

FlinkOnYarn 监控 flink任务

Flink任务一般为实时不断运行的任务,如果没有任务监控,
任务异常时无法第一时间处理会比较麻烦。
这里通过调用API接口方式来获取参数,实现任务监控。

Flink任务监控(基于API接口编写shell脚本)
一 flink-on-yarn 模式
二 编写shell 脚本 

监控集群指标

http://rm-http-address:port/ws/v1/cluster/metrics

 响应正文

<clusterMetrics>

<appsSubmitted>**</appsSubmitted>

<appsCompleted>**</appsCompleted>

<appsPending>0</appsPending>

<appsRunning>**</appsRunning>

<appsFailed>**</appsFailed>

<appsKilled>**</appsKilled>

<reservedMB>0</reservedMB>

<availableMB>**</availableMB>

<allocatedMB>**</allocatedMB>

<pendingMB>0</pendingMB>

<reservedVirtualCores>0</reservedVirtualCores>

<availableVirtualCores>**</availableVirtualCores>

<allocatedVirtualCores>**</allocatedVirtualCores>

<pendingVirtualCores>0</pendingVirtualCores>

<containersAllocated>**</containersAllocated>

<containersReserved>0</containersReserved>

<containersPending>0</containersPending>

<totalMB>**</totalMB>

<totalVirtualCores>**</totalVirtualCores>

<utilizedMBPercent>53</utilizedMBPercent>

<utilizedVirtualCoresPercent>**</utilizedVirtualCoresPercent>

<rmSchedulerBusyPercent>0</rmSchedulerBusyPercent>

<totalNodes>**</totalNodes>

<lostNodes>0</lostNodes>

<unhealthyNodes>**</unhealthyNodes>

<decommissioningNodes>0</decommissioningNodes>

<decommissionedNodes>0</decommissionedNodes>

<rebootedNodes>0</rebootedNodes>

<activeNodes>**</activeNodes>

<shutdownNodes>0</shutdownNodes>

<totalAllocatedContainersAcrossPartition>0</totalAllocatedContainersAcrossPartition>

<crossPartitionMetricsAvailable>false</crossPartitionMetricsAvailable>

</clusterMetrics>

clusterMetrics 对象的元素

项目数据类型描述
apps已提交int提交的申请数量
应用已完成int完成的申请数量
apps待定int待处理的申请数量
应用程序正在运行int正在运行的应用程序数
apps失败int失败的应用程序数
应用已杀死int被终止的应用程序数
保留MB预留的内存量(以 MB 为单位)
可用MB可用内存量(以 MB 为单位)
已分配MB分配的内存量(以 MB 为单位)
总MB总内存量(以 MB 为单位)
保留虚拟核心保留的虚拟核心数
可用虚拟核心可用虚拟核心数
分配的虚拟核心分配的虚拟核心数
totalVirtualCores 虚拟核心数虚拟核心总数
容器已分配int分配的容器数
容器保留int保留的容器数
容器挂起int待处理的容器数
总节点数int节点总数
活动节点int活动节点数
丢失节点int丢失的节点数
不健康的节点int不正常的节点数
停用节点int停用的节点数
已停用节点int停用的节点数
rebooted节点int重新启动的节点数
shutdown节点int关闭的节点数

获取所有application

curl -s http://XXX:8088/ws/v1/cluster/apps

获取 state值为 RUNNING 的application任务

curl -s http://XXX:8088/ws/v1/cluster/apps?state=RUNNING 

获取这个任务单个信息 

curl -s http://XXX:8088/ws/v1/cluster/apps/application_1619074605427_0063 |jq .app.state

请注意,根据安全设置,用户可能无法看到所有字段。 

项目数据类型描述
编号字符串应用程序 ID
用户字符串启动应用程序的用户
名字字符串应用程序名称
队列字符串提交应用程序的队列
字符串根据 ResourceManager 的应用程序状态 - 有效值是 YarnApplicationState 枚举的成员:NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED
finalStatus字符串应用程序的最终状态(如果已完成)(由应用程序本身报告)有效值是 FinalApplicationStatus 枚举的成员:UNDEFINED、SUCCEEDED、FAILED、KILLED
进展以百分比表示的申请进度
trackingUI字符串跟踪 URL 当前指向的位置 - 历史记录(用于历史记录服务器)或 ApplicationMaster
trackingUrl字符串可用于跟踪应用程序的 Web URL
诊断字符串详细的诊断信息
clusterId集群 ID
应用程序类型字符串应用程序类型
application标签字符串应用程序的逗号分隔标记
优先权字符串所提交申请的优先权
开始时间应用程序启动的时间(自纪元以来的毫秒)
完成时间应用程序完成的时间(以纪元以来的毫秒数为单位)
elapsedTime自应用程序启动以来经过的时间(以毫秒为单位)
amContainer日志字符串应用程序主容器日志的 URL
amHostHttp地址字符串应用程序主机的节点 http 地址
amRPCAddress字符串应用程序主机的 RPC 地址
已分配MBint分配给应用程序正在运行的容器的内存总和(以 MB 为单位)
已分配VCoresint分配给应用程序正在运行的容器的虚拟核心的总和
running容器int当前为应用程序运行的容器数
memorySeconds应用程序分配的内存量(兆字节-秒)
vcore秒数应用程序分配的 CPU 资源量(虚拟内核 - 秒)
queueUsagePercentage应用正在使用的队列资源的百分比
clusterUsage百分比应用正在使用的群集资源的百分比。
抢占ResourceMB抢占式容器使用的内存
preemptedResourceVCores抢占容器使用的虚拟核心数
numNonAMContainer抢占int抢占的标准容器数
numAMContainer抢占int抢占的应用程序主容器数
logAggregationStatus字符串日志聚合的状态 - 有效值是 LogAggregationStatus 枚举的成员:DISABLED、NOT_START、RUNNING、RUNNING_WITH_FAILURE、SUCCEEDED、FAILED、TIME_OUT
unmanaged应用程序布尔应用程序是否处于非托管状态。
appNodeLabelExpression字符串节点标签表达式,用于标识默认情况下应在其上运行应用程序容器的节点。
amNodeLabel表达式字符串节点标签表达式,用于标识应用程序的 AM 容器预期在其上运行的节点。

jq,是linux一个很方便的json处理工具

通俗的说就是一个能够接受json,处理json,输出json的程序,反正很好用。

安装起来也非常的方便,直接使用yum即可安装。linux下离线安装jq工具 - 代码天地 (codetd.com)

yum install jq

编写shell脚本

由于公司离线yarn和实时yarn 采用是分开的方式。
只需要监控实时yarn 任务有没有处于RUNNING,达到监控的目的
这里shell脚本也只记录,flink-on-yarn 这种部署方式任务监控
shell脚本水平有限,大家多多谅解,欢迎指导

shell脚本实现功能:
获取线运行job任务,记录到日志文件。下一次脚本调用时候读取日志文件,判断状态。
不是RUNNING,就告警同时重新记录日志。

#!/bin/bashJoblist=`cat /opt/shell/logs/flink_job.log`    #获取记录job的log文件
let i=0  #获取任务数
let log_count=0  #获取日志中的任务数
start_count=RUNNING  #判断任务是否存在异常############## 1 判断日志文件内容是否为空,为空时自动读取flink任务并记录到日志文件 #########
if [ -z "$Joblist" ]
thenwhile :dojob_id[$i]=`curl -s http://XXX:8088/ws/v1/cluster/apps?state=RUNNING |jq .apps.app[$i].id`if [ ${job_id[$i]} = "null" ];thenbreakelseecho ${job_id[$i]}echo ${job_id[$i]}>>/opt/shell/logs/flink_job.loglet i++fidone
fi############## 2 读取文件中JOB任务 ##################let i=0
while read line
doJOB[$i]=$linelet i++
done</opt/shell/logs/flink_job.loglog_count=$i #获取日志中的任务数########### 3  判断任务状态,是否为RUNNIG,不是则邮件告警   ###############
for ((j=0;j<i;j++))
doJOB_ID=${JOB[$j]//\"}JOB_status=`curl -s http://XXXX:8088/ws/v1/cluster/apps/$JOB_ID  | jq .app.state`JOB_NAME=`curl -s http://XXX:8088/ws/v1/cluster/apps/$JOB_ID  | jq .app.name`START=$[`curl -s http://XXX:8088/ws/v1/cluster/apps/$JOB_ID | jq  .app.startedTime` / 1000]#	echo "JOB_NAME: "$JOB_NAME
#	echo 启动时间: `date -d @$START +"%F %H:%M:%S"`
#	echo "JOB_status: " ${JOB_status//\"}#echo -e "【$JOB_NAME】 \n JOB_ID: $JOB_ID \n 启动时间: `date -d @$START +"%F %H:%M:%S"` \n 检查时间: `date "+%Y-%m-%d %H:%M:%S"` \n 目前状态: $JOB_status"
#echo "=============================================="if [ ${JOB_status//\"} != "RUNNING" ];thenSUBJECT="【异常告警】Flink任务异常"TEXT="Flink任务 【$JOB_NAME】 异常故障 \n\nJOB_ID: $JOB_ID\n\n启动时间: `date -d @$START +"%F %H:%M:%S"` \n\n检查时间: `date "+%Y-%m-%d %H:%M:%S"`  \n\n目前状态: $JOB_status"echo -e $TEXT | mail -s $SUBJECT     邮箱地址start_count=erronfi
done########### 4  出现任务异常,重新读取job 任务记录到日志文件   ###############let i=0
if [ $start_count == "erron" ];thenecho '重新写入日志文件'while :dojob_id[$i]=`curl -s http://XXXX:8088/ws/v1/cluster/apps?state=RUNNING |jq .apps.app[$i].id`if [ ${job_id[$i]} = "null" ];thenbreakelif  [ $i == 0 ]; thenecho ${job_id[$i]}>/opt/shell/logs/flink_job.logelseecho ${job_id[$i]}>>/opt/shell/logs/flink_job.logfilet i++donestart_count=RUNNING
fi########### 5  判断线上任务数是否一致,是否有新任务增加   ###############let i=0
while :
dojob_id[$i]=`curl -s http://XXX:8088/ws/v1/cluster/apps?state=RUNNING |jq .apps.app[$i].id`if [ ${job_id[$i]} = "null" ];thenbreakelselet i++fi
done
let count=$i #线上任务数
echo "==========================线上最新RUNNING状态任务数: "$count
echo "==========================日志RUNNING状态任务数: "$log_countif [ ! $count -eq $log_count ]; thenecho "现有RUNNING状态任务数不相等于已记录的任务数"echo  ${job_id[0]} >/opt/shell/logs/flink_job.logfor ((i=1;i<count;i++))doecho "重新写入JOB: "${job_id[$i]}echo ${job_id[$i]}>> /opt/shell/logs/flink_job.logdonefiecho "======================当前时间: `date "+%Y-%m-%d %H:%M:%S"`======================================="
echo  ================================================================================================
echo  =====================================本次crontab监控结束========================================
echo  ================================================================================================

Yarn REST API 使用指南-阿里云开发者社区

Apache Hadoop 3.0.1 – ResourceManager REST API。

相关文章:

FlinkOnYarn 监控 flink任务

Flink任务一般为实时不断运行的任务&#xff0c;如果没有任务监控, 任务异常时无法第一时间处理会比较麻烦。 这里通过调用API接口方式来获取参数&#xff0c;实现任务监控。 Flink任务监控&#xff08;基于API接口编写shell脚本&#xff09; 一 flink-on-yarn 模式 二 编写she…...

C++内存管理机制(侯捷)笔记1

C内存管理机制&#xff08;侯捷&#xff09; 本文是学习笔记&#xff0c;仅供个人学习使用。如有侵权&#xff0c;请联系删除。 参考链接 Youtube: 侯捷-C内存管理机制 Github课程视频、PPT和源代码: https://github.com/ZachL1/Bilibili-plus 第一讲primitives的笔记 截至…...

【论文阅读】Non-blocking Lazy Schema Changes in Multi-Version

Non-blocking Lazy Schema Changes in Multi-Version Database Management Systems 1. Intro 1.1 Motivation 一个是online能够提供不停机的更新的能力&#xff0c;在很多业务系统里面是必要的。第二个是满足高可用&#xff0c;SaaS、PaaS要提供高可用的系统给用户&#xff…...

Rust 最新版1.75.0升级记

升级方法 稳定版 C:\>rustup update stable info: syncing channel updates for stable-x86_64-pc-windows-msvc info: latest update on 2023-12-28, rust version 1.75.0 (82e1608df 2023-12-21) info: downloading component cargo 5.9 MiB / 5.9 MiB (100 %) 3.…...

使用 KubeSphere 与极狐GitLab 打造云原生持续交付系统

极狐GitLab 简介 极狐GitLab 是一个一体化的 DevOps 平台&#xff0c;可以简单理解为 GitLab 在国内的“发行版”。是由极狐(GitLab)公司推出的产品&#xff08;极狐(GitLab)公司是以“中外合资3.0”模式成立的公司&#xff0c;在国内独立运营&#xff0c;为国内用户提供适合本…...

EasyExcel的追加写入(新增POI、CSV)

总结&#xff1a;目前市面上流行的2种 EasyExcel和POI都不是真正的对物理excel文件进行追加导入。只是在缓存里面追加&#xff0c;最后一次性写入&#xff0c;并不能解决内存占用问题。 1.EasyExcel2.POI3.CSV 无非就是下面两种逻辑&#xff1a; 1.for循环查询数据&#xff0c;…...

JetBrains 开发工具——免费教育许可申请流程

JetBrains 开发工具——免费教育许可申请流程 本文将详细介绍通过教育邮箱申请Free Educational Licenses. Free Educational Licenses地址 1.选择符合自己的申请入口 2.填写申请表单提交 官方指南 &#x1f603;&#x1f603;&#x1f603;...

打造高性价比小程序,轻松降低成本

随着移动互联网的普及&#xff0c;小程序已经成为一个热门的应用开发方向。然而&#xff0c;对于许多企业和个人而言&#xff0c;制作一个小程序的费用却让人望而却步。那么&#xff0c;如何以最低的成本制作一款高性价比的小程序呢&#xff1f; 答案很简单&#xff0c;只需要找…...

mysql 索引优化查询

MySQL的索引可以提高数据库查询性能。下面是一些常用的MySQL索引优化技巧&#xff1a; 创建合适的索引&#xff1a;根据查询条件选择合适的列作为索引&#xff0c;并确保这些索引在WHERE子句中被使用到。 示例代码&#xff1a;CREATE INDEX idx_name ON table_name (column_nam…...

跟着cherno手搓游戏引擎【4】窗口抽象、GLFW配置

引入GLFW&#xff1a; 在vendor里创建GLFW文件夹&#xff1a; 在github上下载&#xff0c;把包下载到GLFW包下。 GitHub - TheCherno/glfw: A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input修改SRC/premake5.lua的配置&#xff1a;12、13、15、36…...

Tomcat基础升华学习

01 What is Tomcat 1.1 Tomcat官网 官网 &#xff1a;https://tomcat.apache.org 1.2 Understand 为什么说Tomcat是Servlet之类技术的实现&#xff1f; 在我们的理解中&#xff0c;Tomcat可以称为Web容器或者Servlet容器 不妨通过手写一个Tomcat来推导一下 1.2.1 创建Tomc…...

一种具有轨迹优化的无人驾驶车实时运动规划器 论文阅读

论文题目&#xff1a;A Real-Time Motion Planner with Trajectory Optimization for Autonomous Vehicles Abstract 本文的实时规划器首先将空间离散化&#xff0c;然后基于一组成本函数搜索出最佳轨迹。迭代优化所得到的轨迹的Path和Speed。post-optimization计算复杂度低&…...

GPDB - 高可用 - 流复制状态

GPDB - 高可用 - 流复制状态 GPDB的高可用基于流复制&#xff0c;通过FTS进行自动故障切换。自动故障切换需要根据primary-mirror流复制的各种状态进行判断。本节就聊聊primary-mirror流复制的各种状态。同样适用于PgSQL 1、WalSndState typedef enum WalSndState {WALSNDSTATE…...

最佳解决方案:如何在网络爬虫中解决验证码

Captcha&#xff08;全自动区分计算机和人类的公开图灵测试&#xff09;是广泛应用的安全措施&#xff0c;用于区分合法的人类用户和自动化机器人。它通过呈现复杂的挑战&#xff0c;包括视觉上扭曲的文本、复杂的图像或复杂的拼图等方式&#xff0c;要求用户成功解决这些挑战以…...

在线项目实习分享:股票价格形态聚类与收益分析

01前置课程 数据挖掘基础数据探索数据预处理数据挖掘算法基础Python数据挖掘编程基础Matplotlib可视化Pyecharts绘图 02师傅带练 行业联动与轮动分析 通过分析申银万国行业交易指数的联动与轮动现象&#xff0c;获得有意义的行业轮动关联规则&#xff0c;并在此基础上设计量…...

c# vb.net检测字符串是否匹配一组相似度数组input Like

VB.NET 检测字符串是否符合一个数组中的多个like条件&#xff0c;有没有最简单的函数&#xff1f; 在VB.NET中&#xff0c;可以使用Array.Exists方法结合String.Like方法来检测一个字符串是否符合一个数组中的多个LIKE条件。Array.Exists方法用于确定序列中的任何元素是否满足…...

DEJA_VU3D - Cesium功能集 之 113-获取圆节点(2)

前言 编写这个专栏主要目的是对工作之中基于Cesium实现过的功能进行整合,有自己琢磨实现的,也有参考其他大神后整理实现的,初步算了算现在有差不多实现小140个左右的功能,后续也会不断的追加,所以暂时打算一周2-3更的样子来更新本专栏(每篇博文都会奉上完整demo的源代码…...

spring-boot项目启动类错误: 找不到或无法加载主类 com.**Application

问题&#xff1a;Springboot项目启动报错&#xff1a;错误: 找不到或无法加载主类 com.**Application 解决步骤&#xff1a; 1.File–>Project Structure 2.Modules–>选中你的项目–点击“-”移除 3.重新导入&#xff1a;点击“”号&#xff0c;选择Import Module&…...

搭建大数据开发环境【AutoDL容器】

租用AutoDL容器 注意&#xff1a;结束实验时记得将数据库数据转移存储 使用Docker实现本地IDEA连接AutoDL 后为ssh服务器地址用户名为前的端口号ssh密码为用户密码 安装JDK 压缩包安装 Java下载地址&#xff1a;Oracle Java Download&#xff08;hadoop不指定特定版本java&…...

写一个简单的Java的Gui文本输入窗口,JFrame的简单使用

JFrame是指一个计算机语言-java的GUI程序的基本思路是以JFrame为基础,它是屏幕上window的对象,能够最大化、最小化、关闭。 Swing的三个基本构造块:标签、按钮和文本字段;但是需要个地方安放它们,并希望用户知道如何处理它们。JFrame 类就是解决这个问题的——它是一个容器…...

Unity中URP下抓屏的 开启 和 使用

文章目录 前言一、抓屏开启1、Unity下开启抓屏2、Shader中开启抓屏 二、抓屏使用1、设置为半透明渲染队列&#xff0c;关闭深度写入2、申明纹理和采样器3、在片元着色器使用请添加图片描述 三、测试代码 前言 我们在这篇文章中看一下&#xff0c;URP下怎么开启抓屏。 一、抓屏…...

业务题day01

1-1 请说一下你项目中是如何进行项目管理和发布的 我们项目使用的是Gogs进行代码托管&#xff0c;Jenkins进行项目自动运维发布。 在我们的项目中&#xff0c;我们使用Gogs进行代码托管和版本控制&#xff0c;以确保团队成员可以协同开发和管理代码。 Gogs是一个轻量级的、开…...

DEJA_VU3D - Cesium功能集 之 114-雷达效果(基础效果)

前言 编写这个专栏主要目的是对工作之中基于Cesium实现过的功能进行整合,有自己琢磨实现的,也有参考其他大神后整理实现的,初步算了算现在有差不多实现小140个左右的功能,后续也会不断的追加,所以暂时打算一周2-3更的样子来更新本专栏(每篇博文都会奉上完整demo的源代码…...

【Leetcode】2696. 删除子串后的字符串最小长度

文章目录 题目思路代码 题目 2696. 删除子串后的字符串最小长度 思路 计算通过删除字符串中的 “AB” 和 “CD” 子串后&#xff0c;可获得的最终字符串的最小长度。 主要思路是使用一个栈来模拟字符串的处理过程&#xff0c;每次遍历字符串时&#xff0c;如果当前字符和栈…...

利用gulp工具对常规web项目进行压缩打包

前言 对于一个常规的web项目&#xff0c;如下项目目录 |- imgs | - img1.png | - img2.png |- js | - user.js | - utils.js |- css | - index.css | - user.css |- html | - user.html |- index.html可以使用各种构建工具&#xff08;如webpack、gulp、grunt等&#xff09;来…...

面试经典题---68.文本左右对齐

68.文本左右对齐 我的解法&#xff1a; 两层while循环嵌套&#xff0c;外层循环用于处理不同行&#xff0c;内层while循环计算出每行应有的单词个数。 使用left和right记录一行中应有的单词下标&#xff0c;即当前行应包含从words[left]到words[right-1]这count个单词&#xf…...

完整的模型验证套路

读取图片 from PIL import Imageimg_path "../Yennefer_of_Vengerberg.jpg" image Image.open(img_path) print(image)转换成灰度图&#xff08;可选&#xff09; image image.convert(L) image.show()转换成RGB格式 image image.convert(RGB)因为png格式是四…...

内 存 取 证

1.用户密码 从内存中获取到用户admin的密码并且破解密码&#xff0c;以Flag{admin,password}形式提交(密码为6位)&#xff1b; 1&#xff09;查看帮助 -h ./volatility_2.6_lin64_standalone -h 2&#xff09;获取内存镜像文件的信息 imageinfo ./volatility_2.6_lin64_stand…...

【PHP】价格区间字段验证,如4万-5万

参数值示例&#xff1a; $str1 "4万-5万"; $str2 "4万-5万元"; $str3 "5万元以内"; 以下是一个PHP示例&#xff0c;用于检查字符串是否满足要求&#xff1a; function checkString($str) {// 检查字符串中是否包含"-"或"以内…...

安徽省暨合肥市“希望工程·梦想计划”小盖茨机器人捐赠启动仪式举行

1月5日&#xff0c;安徽省暨合肥市“希望工程梦想计划”小盖茨机器人捐赠启动仪式在合肥市一六八玫瑰园学校东校区举行。共青团安徽省委副书记叶征&#xff0c;北京儒布特教育科技有限公司董事牛俊明&#xff0c;北京儒布特教育科技有限公司市场总监高进&#xff0c;安徽省青基…...

电商网站布局设计/网上电商平台开发

大家对于微软的Surface系列想必都已经非常熟悉了&#xff0c;但是Surface家族中还有一款大家伙&#xff0c;它自从2015年上市开始便一直处于供不应求的状态&#xff0c;这就是Surface Hub&#xff0c;一台拥有84寸屏幕的巨型平板电脑。微软Surface Hub的工程总监Peter Oehler先…...

常用的网站开发语言有哪些/石家庄seo扣费

用过了很多压测工具&#xff0c;却一直没找到中意的那款。最近试了wrk感觉不错&#xff0c;写下这份使用指南给自己备忘用&#xff0c;如果能帮到你&#xff0c;那也很好。 安装 wrk支持大多数类UNIX系统&#xff0c;不支持windows。需要操作系统支持LuaJIT和OpenSSL&#xff0…...

mvc6 网站开发实战/十大免费网站推广入口

第一&#xff1a;IDP的申请1.先在 iPhone DevCenter上注册成为iphone developer2.加入iPhone开发程序项目 iPhone Developer Program Apply Now3.打算收费的都建议选择99刀那个&#xff0c;QTY是个数的意思。1就好。4.选择地区&#xff0c;发现没有china&#xff0c;不要紧&…...

wordpress制作的网页/网站排行

一、前言当前有许多有发贴跟交流功能的网站&#xff0c;并且内容类网站(如视频网站或硬件站)也基本开始支持。但对于更专业化跟短篇的文章来说&#xff0c;往往还要用到更多的排版及格式。于是出现了富文本编辑器以及标记语言Markdown。这两种编辑方法现在正在成为主流。但是他…...

做任务挣钱网站/网站排名快速提升工具

对于 Mac 用户&#xff0c;Dock 既可以是您隐藏起来从不使用的工具&#xff0c;也可以是您每天多次依赖的工具。 如果您属于后者&#xff0c;那么这里有一些炫酷技巧可以让您将 Mac 的 Dock 变成一个更高效的工具。 准备好了吗&#xff1f; 让我们开始吧。 在 Dock 图标之间添…...

试用平台网站建设/seo网页优化公司

原标题&#xff1a;教你​win10 1909系统如何将管理员名称更改为个性又霸气win10 1909版本系统如何更改管理员名称?最近很多小伙伴对于自己电脑默认的管理员名字不喜欢&#xff0c;想要自己改一个更霸气的!那么接下来一起看看win10 1909更改管理员名称方法吧!教你改一个个性又…...