引言

yarn是一款非常优秀的分布式资源管理和调度框架,我们的应用程序想要分布式运行,只要使用yarn来管理资源就会非常放心。现如今好多大型计算框架都可以运行在yarn框架上,比如天生运行在yarn上的MapReduce、优秀的内存计算引擎Spark、后起之秀Flink等都支持yarn的运行模式。那么我们自己开发的程序该如何运行在这款优秀的资源管理和调度框架呢。

友情链接:
hadoop源码下载地址
hadoop-yarn官网地址

1. yarn的基本原理

说明:
1. 屎黄色的框框代表一个节点也就是一台机器,这几个节点上运行着几个常驻进程,图片上蓝色背景的ResourceManager,NodeManager。
2. 其他的红色和紫色北京的都是因为提交了yarn应用程序才启动的,也就是说不是常驻进程。
3. 我们自定义yarn应用程序主要就是需要完成Client、AppMaster、和container内的执行代码。

基本流程:
a. 首先启动的是我们的Client客户端程序,这个程序会向ResourceManager发出要提交一个yarn应用的请求,ResourceManager是一个常驻进程可以看做是一个服务。
b. 当你的Client发出请求之后自认ResourceManager会做出相应的回应,此时Client就会得到一个回应response。
c. Client对这个response给出首先启动AppMaster的描述,然后将这个任务submit提交给ResourceManager。
d. 此时ResourceManager就会给你的submit的AppMaster找个合适的资源节点,并且启动它。
e. 当这个AppMaster启动之后首先是向ResourceManager注册自己,发送自己的运行状态。
f. 接下来就是AppMaster和ResourceManager之间的各种请求和响应了,它们之间的请求和响应为了就是启动用来干活的container来完成分布式计算的主体工作。其启动过程和Client与ResourceManager交互启动AppMaster是差不多的。

2. 剖析各类框架适配yarn的源码

2.1 haoop源码中的DistributeShell程序

tips:该部分源码是在这个目录下
hadoop-2.7.3-src\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-applications\hadoop-yarn-applications-distributedshell

这个程序的功能就是根据你输出的参数和脚本参数,分布式执行你给出的shell命令,可以是shell脚本文件可以是可执行的shell命令。在这部分代码中一共就两个主要的代码文件一个是Client.java另一个就是ApplicationMaster.java,其他两个就是辅助性代码文件了。下面就摘取代码片段做精简解释


public class Client{/*** Main run function for the client* @return true if application completed successfully* @throws IOException* @throws YarnException*/public boolean run() throws IOException, YarnException {// 1. yarnClient已经在构造函数中被初始化,现启动yarnClient客户端yarnClient.start();// 2. 获取集群信息YarnClusterMetrics clusterMetrics = yarnClient.getYarnClusterMetrics();// 3. 获取各节点的运行状态List<NodeReport> clusterNodeReports = yarnClient.getNodeReports(NodeState.RUNNING);// 4. 创建Yarn应用程序YarnClientApplication app = yarnClient.createApplication();// 5. 获取ResourceManager响应GetNewApplicationResponse appResponse = app.getNewApplicationResponse();// 6. 获得最大申请资源包括内存资源和cpu核心数资源,控制申请资源不要大于可用资源int maxMem = appResponse.getMaximumResourceCapability().getMemory();if (amMemory > maxMem) {amMemory = maxMem;}				int maxVCores = appResponse.getMaximumResourceCapability().getVirtualCores();if (amVCores > maxVCores) {amVCores = maxVCores;}// 7. 设置任务上下文环境,其过程就是准备你的AppMaster的运行环境,包括启动脚本、配置文件、运行参数、class环境等ApplicationSubmissionContext appContext = app.getApplicationSubmissionContext();ApplicationId appId = appContext.getApplicationId();// keepContainers的意思就是如果container失败了重试的时候是杀死重新创建container还是保留container容器appContext.setKeepContainersAcrossApplicationAttempts(keepContainers);// 8. 设置任务名称appContext.setApplicationName(appName);// 将需要使用的资源文件拷贝到hdfs上使各个节点都能共享下载使用,因为你的AppMaster或container程序都不一定在哪个节点上运行着Map<String, LocalResource> localResources = new HashMap<String, LocalResource>();FileSystem fs = FileSystem.get(new Configuration());addToLocalResources(fs, appMasterJar, appMasterJarPath, appId.toString(),localResources, null);		// 作为分布式的container需要执行的shell的hdfs脚本路径String hdfsShellScriptLocation = ""; long hdfsShellScriptLen = 0;long hdfsShellScriptTimestamp = 0;if (!shellScriptPath.isEmpty()) {Path shellSrc = new Path(shellScriptPath);String shellPathSuffix =appName + "/" + appId.toString() + "/" + SCRIPT_PATH;Path shellDst =new Path(fs.getHomeDirectory(), shellPathSuffix);fs.copyFromLocalFile(false, true, shellSrc, shellDst);hdfsShellScriptLocation = shellDst.toUri().toString(); FileStatus shellFileStatus = fs.getFileStatus(shellDst);hdfsShellScriptLen = shellFileStatus.getLen();hdfsShellScriptTimestamp = shellFileStatus.getModificationTime();}// 如果是需要安全验证的集群要设置token//amContainer.setContainerTokens(containerToken);// 准备好master运行所依赖的运行环境Map<String, String> env = new HashMap<String, String>();env.put(DSConstants.DISTRIBUTEDSHELLSCRIPTLOCATION, hdfsShellScriptLocation);env.put(DSConstants.DISTRIBUTEDSHELLSCRIPTTIMESTAMP, Long.toString(hdfsShellScriptTimestamp));env.put(DSConstants.DISTRIBUTEDSHELLSCRIPTLEN, Long.toString(hdfsShellScriptLen));if (domainId != null && domainId.length() > 0) {env.put(DSConstants.DISTRIBUTEDSHELLTIMELINEDOMAIN, domainId);}// 任务的运行依赖jar包的准备StringBuilder classPathEnv = new StringBuilder(Environment.CLASSPATH.$$()).append(ApplicationConstants.CLASS_PATH_SEPARATOR).append("./*");for (String c : conf.getStrings(YarnConfiguration.YARN_APPLICATION_CLASSPATH,YarnConfiguration.DEFAULT_YARN_CROSS_PLATFORM_APPLICATION_CLASSPATH)) {classPathEnv.append(ApplicationConstants.CLASS_PATH_SEPARATOR);classPathEnv.append(c.trim());}classPathEnv.append(ApplicationConstants.CLASS_PATH_SEPARATOR).append("./log4j.properties");// 准备class环境if (conf.getBoolean(YarnConfiguration.IS_MINI_YARN_CLUSTER, false)) {classPathEnv.append(':');classPathEnv.append(System.getProperty("java.class.path"));}env.put("CLASSPATH", classPathEnv.toString());// 根据参数构建启动AppMaster的脚本Vector<CharSequence> vargs = new Vector<CharSequence>(30);vargs.add(Environment.JAVA_HOME.$$() + "/bin/java");vargs.add("-Xmx" + amMemory + "m");vargs.add(appMasterMainClass);vargs.add("--container_memory " + String.valueOf(containerMemory));vargs.add("--container_vcores " + String.valueOf(containerVirtualCores));vargs.add("--num_containers " + String.valueOf(numContainers));if (null != nodeLabelExpression) {appContext.setNodeLabelExpression(nodeLabelExpression);}vargs.add("--priority " + String.valueOf(shellCmdPriority));for (Map.Entry<String, String> entry : shellEnv.entrySet()) {vargs.add("--shell_env " + entry.getKey() + "=" + entry.getValue());}			if (debugFlag) {vargs.add("--debug");}vargs.add("1>" + ApplicationConstants.LOG_DIR_EXPANSION_VAR + "/AppMaster.stdout");vargs.add("2>" + ApplicationConstants.LOG_DIR_EXPANSION_VAR + "/AppMaster.stderr");// 最终构建好的AppMaster启动脚本StringBuilder command = new StringBuilder();for (CharSequence str : vargs) {command.append(str).append(" ");}   List<String> commands = new ArrayList<String>();commands.add(command.toString());		// AppMaster程序其实也是一个container程序ContainerLaunchContext amContainer = ContainerLaunchContext.newInstance(localResources, env, commands, null, null, null);// 设置资源大小 Resource capability = Resource.newInstance(amMemory, amVCores);appContext.setResource(capability);appContext.setAMContainerSpec(amContainer);// 设置任务优先级Priority pri = Priority.newInstance(amPriority);appContext.setPriority(pri);// 最终的提交applicationsManager.submitApplication(appRequest);yarnClient.submitApplication(appContext);}
}
public class ApplicationMaster {
/*** Main run function for the application master** @throws YarnException* @throws IOException*/@SuppressWarnings({ "unchecked" })public void run() throws YarnException, IOException, InterruptedException {// 获得用户证书Credentials credentials =UserGroupInformation.getCurrentUser().getCredentials();DataOutputBuffer dob = new DataOutputBuffer();credentials.writeTokenStorageToStream(dob);// 确保applicationMaster和resourceManager之间的通信畅通,去掉身份认证// Now remove the AM->RM token so that containers cannot access it.Iterator<Token<?>> iter = credentials.getAllTokens().iterator();LOG.info("Executing with tokens:");while (iter.hasNext()) {Token<?> token = iter.next();LOG.info(token);if (token.getKind().equals(AMRMTokenIdentifier.KIND_NAME)) {iter.remove();}}allTokens = ByteBuffer.wrap(dob.getData(), 0, dob.getLength());// Create appSubmitterUgi and add original tokens to itString appSubmitterUserName =System.getenv(ApplicationConstants.Environment.USER.name());appSubmitterUgi =UserGroupInformation.createRemoteUser(appSubmitterUserName);appSubmitterUgi.addCredentials(credentials);// resourceManager函数回调控制器,创建异步通信AMRMClientAsync.CallbackHandler allocListener = new RMCallbackHandler();amRMClient = AMRMClientAsync.createAMRMClientAsync(1000, allocListener);amRMClient.init(conf);amRMClient.start();// 创建nodeManager节点回调控制器containerListener = createNMCallbackHandler();nmClientAsync = new NMClientAsyncImpl(containerListener);nmClientAsync.init(conf);nmClientAsync.start();startTimelineClient(conf);if(timelineClient != null) {publishApplicationAttemptEvent(timelineClient, appAttemptID.toString(),DSEvent.DS_APP_ATTEMPT_START, domainId, appSubmitterUgi);}// 向resourceManager注册自己,并开始心跳通信// Register self with ResourceManager// This will start heartbeating to the RMappMasterHostname = NetUtils.getHostname();RegisterApplicationMasterResponse response = amRMClient.registerApplicationMaster(appMasterHostname, appMasterRpcPort,appMasterTrackingUrl);// 以下部分都是对资源的合理性校验,避免资源占用过多int maxMem = response.getMaximumResourceCapability().getMemory();int maxVCores = response.getMaximumResourceCapability().getVirtualCores();if (containerMemory > maxMem) {LOG.info("Container memory specified above max threshold of cluster."+ " Using max value." + ", specified=" + containerMemory + ", max="+ maxMem);containerMemory = maxMem;}if (containerVirtualCores > maxVCores) {LOG.info("Container virtual cores specified above max threshold of cluster."+ " Using max value." + ", specified=" + containerVirtualCores + ", max="+ maxVCores);containerVirtualCores = maxVCores;}// 创建这个master所申请管理的计算节点的containerList<Container> previousAMRunningContainers =response.getContainersFromPreviousAttempts();LOG.info(appAttemptID + " received " + previousAMRunningContainers.size()+ " previous attempts' running containers on AM registration.");numAllocatedContainers.addAndGet(previousAMRunningContainers.size());int numTotalContainersToRequest =numTotalContainers - previousAMRunningContainers.size();// 向resourceManager请求所需要申请的资源for (int i = 0; i < numTotalContainersToRequest; ++i) {ContainerRequest containerAsk = setupContainerAskForRM();amRMClient.addContainerRequest(containerAsk);}numRequestedContainers.set(numTotalContainers);}
}

2.1 spark任务提交到yarn的应用程序

tips:这段代码的路径是:spark-2.3.3\resource-managers\yarn\src\main\scala\org\apache\spark\deploy\yarn\Client.scala

这段代码是将spark任务提交到yarn上的一段代码,以下代码片段只是其中一部分片段

private[spark] class Client(val args: ClientArguments,val sparkConf: SparkConf)extends Logging {/*** Submit an application running our ApplicationMaster to the ResourceManager.** The stable Yarn API provides a convenience method (YarnClient#createApplication) for* creating applications and setting up the application submission context. This was not* available in the alpha API.*/def submitApplication(): ApplicationId = {var appId: ApplicationId = nulltry {launcherBackend.connect()// Setup the credentials before doing anything else,// so we have don't have issues at any point.setupCredentials()yarnClient.init(hadoopConf)yarnClient.start()logInfo("Requesting a new application from cluster with %d NodeManagers".format(yarnClient.getYarnClusterMetrics.getNumNodeManagers))// Get a new application from our RMval newApp = yarnClient.createApplication()val newAppResponse = newApp.getNewApplicationResponse()appId = newAppResponse.getApplicationId()new CallerContext("CLIENT", sparkConf.get(APP_CALLER_CONTEXT),Option(appId.toString)).setCurrentContext()// Verify whether the cluster has enough resources for our AMverifyClusterResources(newAppResponse)// Set up the appropriate contexts to launch our AMval containerContext = createContainerLaunchContext(newAppResponse)val appContext = createApplicationSubmissionContext(newApp, containerContext)// Finally, submit and monitor the applicationlogInfo(s"Submitting application $appId to ResourceManager")yarnClient.submitApplication(appContext)launcherBackend.setAppId(appId.toString)reportLauncherState(SparkAppHandle.State.SUBMITTED)appId} catch {case e: Throwable =>if (appId != null) {cleanupStagingDir(appId)}throw e}}
}

3. 开始自己的程序适配到yarn

我们写一个比较简单的yarn应用程序,这个应用程序也包括最基本的两部分代码,Client和AppMaster,只不过AppMaster不再申请更多的container来执行具体的计算,只需要在AppMaster里面运行一个Hello Yarn的输出即可。


public class AppClient {private static Logger LOG = LoggerFactory.getLogger(AppClient.class);private static String appMasterClass = "com.example.yarn.demo01.AppMaster";private static final String appName = "yarn application demo";public static void main(String[] args) {AppClient client = new AppClient();try {client.run();} catch (Exception e) {LOG.error("client run exception , please check log file.", e);}}// 开始执行任务public void run() throws IOException, YarnException {Configuration hadoopConf = new Configuration();// 1. 创建YarnClient和ResourceManager进行交互YarnClient yarnClient = YarnClient.createYarnClient();yarnClient.init(hadoopConf);// yarnClient需要启动之后才能用yarnClient.start();// 这是我们在yarn上创建出来的应用YarnClientApplication application = yarnClient.createApplication();ApplicationSubmissionContext applicationSubmissionContext = application.getApplicationSubmissionContext();GetNewApplicationResponse newApplicationResponse = application.getNewApplicationResponse();// 设置application对象运行上下文/*** 设置上限文对象都需要设置哪些东西呢*{{{* // 一般情况这个id是不用设置的这个ID会根据集群的时间戳和排序的id自动生成* setApplicationId(ApplicationId applicationId);* // 这是任务的名称,这个需要设置* setApplicationName(String applicationName);* // 设置任务指定所在的队列,默认的队列default* setQueue(String queue);* // 任务优先级设置* setPriority(Priority priority);* // 设置applicationMaster运行container环境,也就是任务的master,最为关键* setAMContainerSpec(ContainerLaunchContext amContainer);* // 设置UnmmanageAM,默认值是false,am默认是启动在节点上的container,如果设置成true,再配合其他设置可将这个am启动在指定的环境下方便调试* setUnmanagedAM(boolean value);* // 完成任务之后是否销毁令牌* setCancelTokensWhenComplete(boolean cancel);* // 最多重试多少次* setMaxAppAttempts(int maxAppAttempts);* // 设置资源,这里的资源指的是计算机资源包括cpu和内存等的资源* setResource(Resource resource);* // 设置任务类型* setApplicationType(String applicationType);* // 在应用重试的时候这个container容器是否可以正常访问* setKeepContainersAcrossApplicationAttempts(Boolean boolean);* // 为应用程序设置标签* setApplicationTags(Set<String> tags);* //* setNodeLabelExpression(String nodeLabelExpression);* //* setAMContainerResourceRequest(ResourceRequest request);* setAttemptFailuresValidityInterval()* setLogAggregationContext()* setReservationID(ReservationId reservationID);*}}}*/// 这个如果不设置的话默认是N/A,也就是空的意思applicationSubmissionContext.setApplicationName(appName);// 设置任务优先级,数字越高优先级越高,默认是-1applicationSubmissionContext.setPriority(Priority.newInstance(10));// TODO 添加本地资源Map<String, LocalResource> localResources = new HashMap<>(1 << 4);FileSystem fs = FileSystem.get(hadoopConf);String appMasterJarPath = "yarn-application-demo-1.0-SNAPSHOT.jar";String appMasterJar = "D:\\Users\\Bigdata\\learning\\source\\yarn-application-demo\\target\\yarn-application-demo-1.0-SNAPSHOT.jar" ;ApplicationId appId = applicationSubmissionContext.getApplicationId();addToLocalResources(fs,appMasterJar,appMasterJarPath,appId.toString(),localResources,null);// TODO 添加运行环境Map<String, String> env = new HashMap<>(1 << 4);// 任务的运行依赖jar包的准备StringBuilder classPathEnv = new StringBuilder(ApplicationConstants.Environment.CLASSPATH.$$()).append(ApplicationConstants.CLASS_PATH_SEPARATOR).append("./*");for (String c : hadoopConf.getStrings(YarnConfiguration.YARN_APPLICATION_CLASSPATH,YarnConfiguration.DEFAULT_YARN_CROSS_PLATFORM_APPLICATION_CLASSPATH)) {classPathEnv.append(ApplicationConstants.CLASS_PATH_SEPARATOR);classPathEnv.append(c.trim());}classPathEnv.append(ApplicationConstants.CLASS_PATH_SEPARATOR).append("./log4j.properties");// add the runtime classpath needed for tests to workif (hadoopConf.getBoolean(YarnConfiguration.IS_MINI_YARN_CLUSTER, false)) {classPathEnv.append(':');classPathEnv.append(System.getProperty("java.class.path"));}env.put("CLASSPATH", classPathEnv.toString());// TODO 添加命令列表List<String> commands = new ArrayList<>(1 << 4);// 1. 需要将path下面的jar包上传至hdfs,然后其他节点从hdfs上下载下来commands.add(ApplicationConstants.Environment.JAVA_HOME.$$() + "/bin/java"+ " -Xmx200m -Xms200m -Xmn20m " + appMasterClass);ContainerLaunchContext amContainer = ContainerLaunchContext.newInstance(localResources, env, commands, null, null, null);// 准备amContainer的运行环境applicationSubmissionContext.setAMContainerSpec(amContainer);// 设置UnmmanageAM,默认值是false,am默认是启动在节点上的container,如果设置成true,再配合其他设置可将这个am启动在指定的环境下方便调试//  applicationSubmissionContext.setUnmanagedAM(false);// 任务完成时令牌是否销毁,默认值是trueapplicationSubmissionContext.setCancelTokensWhenComplete(true);// 任务失败后最大重试次数,//  applicationSubmissionContext.setMaxAppAttempts();// 对资源进行设置,正常是从用户输入的参数中解析出来设置进入int memory = 1024;int vCores = 2;applicationSubmissionContext.setResource(Resource.newInstance(memory, vCores));// 设置任务类型applicationSubmissionContext.setApplicationType("my-yarn-application");// 默认是falseapplicationSubmissionContext.setKeepContainersAcrossApplicationAttempts(false);// 为应用程序设置标签Set<String> tags = new HashSet<>(1 << 2);tags.add("tag1");tags.add("tag2");applicationSubmissionContext.setApplicationTags(tags);// 设置节点标签//  applicationSubmissionContext.setNodeLabelExpression();// 设置applicationMaster的container运行资源请求
//        String hostName = "127.0.0.1";
//        int numContainers = 1;
//        ResourceRequest amRequest = ResourceRequest.newInstance(Priority.newInstance(10), hostName, Resource.newInstance(memory, vCores), numContainers);
//        applicationSubmissionContext.setAMContainerResourceRequest(amRequest);// 应用失败重试时间间隔applicationSubmissionContext.setAttemptFailuresValidityInterval(30 * 1000L);// 日志聚合上下文// applicationSubmissionContext.setLogAggregationContext();// TODO 检查提交申请的资源上限,避免程序资源过载造成系统宕机// 最后提交开始正式运行设置好的任务yarnClient.submitApplication(applicationSubmissionContext);}private void addToLocalResources(FileSystem fs, String fileSrcPath,String fileDstPath, String appId, Map<String, LocalResource> localResources,String resources) throws IOException {String suffix =appName + "/" + appId + "/" + fileDstPath;Path dst =new Path(fs.getHomeDirectory(), suffix);if (fileSrcPath == null) {FSDataOutputStream ostream = null;try {ostream = FileSystem.create(fs, dst, new FsPermission((short) 0710));ostream.writeUTF(resources);} finally {IOUtils.closeQuietly(ostream);}} else {fs.copyFromLocalFile(new Path(fileSrcPath), dst);}FileStatus scFileStatus = fs.getFileStatus(dst);LocalResource scRsrc =LocalResource.newInstance(ConverterUtils.getYarnUrlFromURI(dst.toUri()),LocalResourceType.FILE, LocalResourceVisibility.APPLICATION,scFileStatus.getLen(), scFileStatus.getModificationTime());localResources.put(fileDstPath, scRsrc);}
}
public class AppMaster {private static Logger LOG = LoggerFactory.getLogger(AppClient.class);private AMRMClientAsync amRmClient ;private Configuration hadoopConf ;private int appMasterRpcPort = -1 ;private String appMasterTrackingUrl ;/*** 使用脚本运行appMaster之后主要运行main方法里面的内容** @param args 执行参数*/public static void main(String[] args) {try{AppMaster master = new AppMaster();master.run();}catch (Exception e){e.printStackTrace();}}public void run(){try{// 提交任务需要注册本身到ResourceManager上AMRMClientAsync.CallbackHandler allocListener = new RMCallBackHandler();amRmClient = AMRMClientAsync.createAMRMClientAsync(1000,allocListener);hadoopConf = new Configuration();amRmClient.init(hadoopConf);amRmClient.start();String hostName = NetUtils.getHostname();amRmClient.registerApplicationMaster(hostName,appMasterRpcPort,appMasterTrackingUrl);}catch (Exception e){e.printStackTrace();}try {System.out.println("hello yarn");} catch (Exception e) {e.printStackTrace();}try{amRmClient.unregisterApplicationMaster(FinalApplicationStatus.SUCCEEDED,"任务运行成功!!!",appMasterTrackingUrl);}catch (Exception e){e.printStackTrace();}}private class RMCallBackHandler implements AMRMClientAsync.CallbackHandler {/*** 当container完成之后调用的函数* @param statuses container状态*/@Overridepublic void onContainersCompleted(List<ContainerStatus> statuses) {}/*** 当container分配完成之后* @param containers 分配好的container*/@Overridepublic void onContainersAllocated(List<Container> containers) {}/*** 关闭请求回调*/@Overridepublic void onShutdownRequest() {}/*** 节点更新* @param updatedNodes 更新的节点*/@Overridepublic void onNodesUpdated(List<NodeReport> updatedNodes) {}/*** 获取进程* @return*/@Overridepublic float getProgress() {return 0;}/*** 发生错误之后* @param e 异常信息*/@Overridepublic void onError(Throwable e) {}}
}

总结

熟悉yarn应用程序的基本工作流程就能很好的理解yarn应用的构成,这样我们就能很好的利用这款优秀的资源管理框架,他还能监控我们的任务运行状态等其他功能。
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. CentOS7下安装Python3.6

    Python 安装 CentOS7默认软件源中没有Python3,要安装Python3需首先安装epel软件源。 [root@localhost ~] yum install epel-release使用 yum 安装 Python3 [root@localhost ~] yum install python36安装 Python 依赖库 使用 pip3 命令安装项目需要用到的 Python 依赖库 [root@…...

    2024/4/28 4:10:33
  2. python字符串/列表/字典互相转换

    字符串与列表 字符串转列表 1.整体转换 str1 = hello world print(str1.split(这里传任何字符串中没有的分割单位都可以,但是不能为空)) # 输出:[helloworld]2.分割遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 寻找有志同道合的小伙伴,互帮互助,群里…...

    2024/4/3 11:18:19
  3. 青年需要克服的几大心理。 (2016-03-12 15:18:50)

    ①嫉妒之心 ②满足之心 ③好强之心 ④浮躁之心...

    2024/4/28 19:48:29
  4. 向github中提交代码报错 Updates were rejected because the remote contains work that you do

    在向github中并非第一次提交代码时,提交代码被拒绝,提示如下:Updates were rejected because the remote contains work that you do解决办法:先pull一下远程仓库的代码,git pull origin master // 把本地仓库的变化连接到远程仓库主分支然后再提交:git push -u origin m…...

    2024/4/28 7:52:23
  5. Jenkins教程之00_持续集成/交付/部署概述

    00_Jenkins与CI&CD概述互联⽹软件的开发和发布,已经形成了⼀套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称CI)与持续交付(Continuous delivery),持续部署(continuous deployment)。一. 持续集成持续集成指的是,频繁地(⼀天多次)将代码集成到主⼲.它…...

    2024/4/27 23:38:35
  6. anaconda 安装tensorflow和pytorch

    anaconda 安装tensorflow和pytorch下载anaconda开始安装tensorflow安装pytorch 下载anaconda 清华镜像源(https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/),下载最新的就可以,无脑安装,有个地方需注意,这个地方都勾上。 开始安装tensorflow 打开anaconda prompt…...

    2024/4/28 16:23:58
  7. es6-day03-函数标准对象

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>函数,对象</title> </head> <body> <script type="text/javascript">use strict//定义函数,两种方法//方法一f…...

    2024/4/28 5:24:41
  8. 微人事第四天:springboot整合web基础组件

    现在我们要在springboot中配置servlet,Filter,Listener这一系列web组件 1.配置servlet组件 如果访问/myservlet并且是get请求就会执行doGet下的方法 package org.javaboy.servlet;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; impor…...

    2024/3/29 13:09:28
  9. Kotlin反射简单例子

    在Kotlin中我们有两种方式来实现反射的功能。一种是调用Java的反射包 java.lang.reflect 下面的API,另外一种就是直接调用Kotlin的kotlin.reflect 包下面的API。 直接贴代码吧 data class KotlinGirl( var name:String?=null, var age:String?=null)先来个构造函数 然后是代…...

    2024/4/27 21:34:06
  10. 求助

    哪位大佬帮我看看这咋回事...

    2024/4/27 21:42:51
  11. vue-transition动画

    demo点击显示与消失<div id="demo"><button v-on:click="show = !show">Toggle</button><transition name="fade"><p v-if="show">hello</p></transition> </div> <script> ne…...

    2024/4/28 4:00:51
  12. zzce测试

    cpongo3的收费专栏测试<script>alert(XSS)0.01去订阅首发dasfdhjjdkjaasdkjfkaskd...

    2024/4/27 22:22:29
  13. redis 源码系列(17):分身术 --- replication

    单点服务在生产环境是绝对无法接受的,但是数据库服务,要实现多节点或者说分布式部署,面临的问题比 stateless 服务要多的多。数据的同步方式、一致性和可用性的妥协诸多限制,必须都加以考虑。 今天我们来学习一下 redis 主从同步相关内容,本节内容是 redis 实现高可用、数…...

    2024/4/27 22:59:27
  14. Myeclipse2014 无法启动 闪退

    -- 现象1: Myeclipse2014 无法启动 闪退 配图: --解决办法: --删掉 {workspace}/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi...

    2024/4/28 20:22:15
  15. 20年_PMO_实践

    19年第一季度,已脱手PMO工作,转到项目中。但作为项目组合的全局掌控者,仍会受PMO的控制。因此根据被动了解情况,记录PMO19年下半年及20年初的运作。19年强调了产品概念,把产品经理制上升到部门管理理念中;其次主推BT&IT项目,开展了共16个项目;主抓流程绩效管理,流…...

    2024/4/28 14:54:39
  16. 产品经理懂点技术之:什么是https,与http有什么区别

    某天,产品汪突然发现,自家的产品在电脑浏览器上打开、在微信浏览器里面打开,都被提示“不安全”!这样用户看到该有多困扰啊。Google Chrome对不安全网址的提示:微信打开不安全网址时的提示“防欺诈盗号,请勿支付或输入qq密码”:小汪就纳闷了,我们什么都没做啊,咋就不安…...

    2024/4/28 16:58:01
  17. RocketMQ-消息发送(二)、消息队列负载机制

    消息生产者启动之后,我们就可以按照需要发送消息了,消息发送之前,首先需要获取主题的路由信息,只有获取了这些信息我们才知道消息要发送到具体的Broker节点。 查找主题的路由信息 tryToFindTopicPublishlnfo 是查找主题的路由信息的方法。如果生产者中缓存了 topic 的路由信…...

    2024/4/25 11:49:29
  18. Spring Cloud 微服务开发:入门、进阶与源码剖析 —— 1.1架构的衍进

    Spring Cloud 微服务开发:入门、进阶与源码剖析本栏目通篇讲述了 Spring Cloud 的核心常用组件,如 Eureka、Feign、Ribbon、Hystrix、Zuul 等。 同时栏目书在核心组件的基础上,对服务的质量保证组件也做了讲解,如:配置中心、全链路监控以及 Spring Cloud Alibaba 贡献的生…...

    2024/4/17 14:55:52
  19. java高级之文件IO流

    1.文件IO外存 内存 缓存打开txt文件的步骤:1.启动一个应用程序[记事本,word,excel],系统会给这个程序分配内存空间2.在外存和内存之间建立一个管道3.将外存中的数据通过管道输送到内存中4.输送数据的管道叫做数据流对象PS: 1.字节是可以操作的最小的有意义的单位2.所有的…...

    2024/3/29 13:09:17
  20. springboot2.X 使用熔断器

    前言如题...

    2024/4/3 19:32:58

最新文章

  1. Kubernetes学习-核心概念篇(三) 核心概念和专业术语

    &#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Kubernetes渐进式学习-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 1. 前言 在前面两篇文章我们简单介绍了什么是K8S&#xff0c;以及K8S的…...

    2024/4/28 22:16:22
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 利用Sentinel解决雪崩问题(一)

    1、解决雪崩问题的常见方式有四种: 超时处理:设定超时时间&#xff0c;请求超过一定时间没有响应就返回错误信息&#xff0c;不会无休止等待;舱壁模式:限定每个业务能使用的线程数&#xff0c;避免耗尽整个tomcat的资源&#xff0c;因此也叫线程隔离;熔断降级:由断路器统计业务…...

    2024/4/24 3:11:43
  4. 实景三维在数字乡村建设中的重要作用

    随着科技的飞速发展&#xff0c;数字乡村建设已成为推动乡村振兴、实现农村现代化的重要途径。实景三维技术作为数字乡村建设的重要支撑&#xff0c;正逐渐在各个领域发挥着不可或缺的作用。本文将从实景三维技术在数字乡村中的应用场景、优势及未来展望等方面进行探讨&#xf…...

    2024/4/26 0:59:18
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/28 13:52:11
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/28 3:28:32
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/28 13:51:37
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/28 15:57:13
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/28 1:22:35
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57