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

Hadoop HA安装配置(容器环境),大数据职业技能竞赛模块A平台搭建,jdk+zookeeper+hadoop HA

HA概述

(1) 所谓HA(High Availablity),即高可用(7*24小时不中断服务)。

(2) 实现高可用最关键的策略是消除单点故障,HA严格来说应该分为各个组件的HA机制,HDFS的HA和YARN的HA。

(3) NameNode主要在以下两个方面影响HDFS集群

                NameNode机器发生意外,如宕机,集群将无法使用,直到管理员重启

                NameNode机器需要升级,包括软件、硬件省级,此时集群也将无法使用

HDFS HA功能通过配置多个NameNode(Active/Standby)实现在集群中对NameNode的热备来解决上述问题。如果出现故障,如机器崩溃或机器需要升级,这时课通过此方式将NameNode很快的切换到另一台机器

环境准备:

参考这篇文章>>大数据职业技能竞赛模块A环境搭建

没特别声明一律按在master上操作

Hadoop HA安装配置

本任务需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:

1、 从宿主机/opt目录下将文件hadoop-3.1.3.tar.gz、jdk-8u212-linux-x64.tar.gz,apache-zookeeper-3.5.7-bin.tar.gz复制到容器Master中的/opt/software路径中(若路径不存在,则需新建),分别将Master节点Hadoop、Zookeeper、JDK安装包解压到/opt/module路径中(若路径不存在,则需新建),其中将JDK、Hadoop解压命令复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

第一步:从宿主机/opt目录下将文件hadoop-3.1.3.tar.gz、jdk-8u212-linux-x64.tar.gz,apache-zookeeper-3.5.7-bin.tar.gz复制到容器Master中的/opt/software路径中(若路径不存在,则需新建)

宿主机(Bigdata)中复制到master里

docker cp /opt/jdk-8u212-linux-x64.tar.gz master:/opt/software
docker cp /opt/hadoop-3.1.3.tar.gz master:/opt/software
docker cp /opt/apache-zookeeper-3.5.7-bin.tar.gz master:/opt/software
第二步:分别将Master节点Hadoop、Zookeeper、JDK安装包解压到/opt/module路径中(若路径不存在,则需新建)

在master中解压

tar zxvf /opt/software/jdk-8u212-linux-x64.tar.gz -C /opt/module/
tar zxvf /opt/software/hadoop-3.1.3.tar.gz -C /opt/module/
tar zxvf /opt/software/apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/

重命名一下

mv /opt/module/jdk1.8.0_212 /opt/module/java
mv /opt/module/hadoop-3.1.3 /opt/module/hadoop
mv /opt/module/apache-zookeeper-3.5.7-bin /opt/module/zookeepe

2、 请完成host相关配置,将三个节点分别命名为master、slave1、slave2并做免密登录,修改容器中/etc/profile文件,设置JDK环境变量并使其生效,分发jdk至slave1、slave2中,均配置完毕后在Master节点分别执行“java -version”和“javac”命令,将命令行执行结果分别截图并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

第一步:完成host相关配置

下面的映射关系写到这个文件里 /etc/hosts(三个节点都要添加

192.168.100.101 master
192.168.100.102 slave1
192.168.100.103 slave2

        前面是ip后面是主机名,根据自己的修改

第二步:将三个节点分别命名为master、slave1、slave2并做免密登录

修改主机名,如果修改好的可以跳过这步

master:

hostnamectl set-hostname master

slave1:

hostnamectl set-hostname slave1

slave2:

hostnamectl set-hostname slave2

免密登录(三个节点都要这样操作)

    生成密钥

        在每台主机输入 ssh-keygen 然后一直敲回车

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:a5KqXjGa6r1CO1pe9cG9bR3Pp2om6BstpOB9l6SW24E root@master
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|                 |
|       . .       |
|    + . S o   .  |
| . + * = O + . + |
|. = + = E.* o . +|
| B.o . =.*.oo  ..|
|=o*+o  .+..+...  |
+----[SHA256]-----+

复制密钥

ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
第三步:修改容器中/etc/profile文件,设置JDK环境变量并使其生效

在/etc/profile文件末尾写环境变量

#JAVA_HOME
export JAVA_HOME=/opt/module/java
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop
#zOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/module/zookeeper#PATH
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin

使环境变量生效

source /etc/profile
四步:分发jdk至slave1、slave2中

复制jdk到slave1、slave2

scp -rq /opt/module/java slave1:/opt/module/
scp -rq /opt/module/java slave2:/opt/module/

复制环境变量

scp /etc/profile slave1:/etc/profile
scp /etc/profile slave2:/etc/profile
第五步:均配置完毕后在Master节点分别执行“java -version”和“javac”命令

输入 java -version

java -version

输入 javac

3、 配置好zookeeper,其中zookeeper使用集群模式,分别在master、slave1、slave2作为其集群的节点,使用zkServer.sh status获取zookeeper服务端状态,将命令和结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下(注:只截取三个节点中zookeeper server角色模式为leader的节点);

第一步:配置好zookeeper,其中zookeeper使用集群模式(master、slave1、slave2作为其集群的节点)

        修改文件名称

mv /opt/module/zookeeper/conf/zoo_sample.cfg /opt/module/zookeeper/conf/zoo.cfg

        配置zoo.cfg

vi /opt/module/zookeeper/conf/zoo.cfg
dataDir=/opt/module/zookeeper/data
datdLogDir=/opt/module/zookeeper/logsserver.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

        代码位置如图:

        创建目录

mkdir /opt/module/zookeeper/data
mkdir /opt/module/zookeeper/logs

        添加myid文件到data里(里面就填一个数字,master填1,slave1填2,slave2填2)

vi /opt/module/zookeeper/data/myid

        把配置好的zookeeper分发到子节点去

scp -r /opt/module/zookeeper slave1:/opt/module/
scp -r /opt/module/zookeeper slave2:/opt/module/

        修改子节点的myid

vi /opt/module/zookeeper/data/myid

启动zookeeper集群(三个节点都要启动)

zkServer.sh start
第二步:使用zkServer.sh status获取zookeeper服务端状态

查看集群状态

zkServer.sh status

4、 配置好Hadoop HA,请将dfs.ha.namenodes.hadoopcluster设置为nn1、nn2,同时yarn.resourcemanager.ha.rm-ids设置为rm1、rm2,并在Master启动nn1与rm1,在slave1启动nn2与rm2,将master、slave1、slave2均作为datanode,分发hadoop至slave1、slave2中,启动yarn与hdfs的HA集群(Hadoop HA集群),并在Master节点上使用命令分别查看服务nn2与rm2进程状态,并将查看命令及结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

第一步:配置好Hadoop HA

将dfs.ha.namenodes.hadoopcluster设置为nn1、nn2,同时yarn.resourcemanager.ha.rm-ids设置为rm1、rm2,并在Master启动nn1与rm1,在slave1启动nn2与rm2,将master、slave1、slave2均作为datanode

core-site.xml
 vi /opt/module/hadoop/etc/hadoop/core-site.xml
    <!-- 指定NameNode的地址 --><property><name>fs.defaultFS</name><value>hdfs://hadoopcluster</value></property><!-- 指定hadoop数据的存储目录 --><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop/data</value></property><!-- 指定zkfc链接的zkServer地址-->	<property><name>ha.zookeeper.quorum</name><value>master:2181,slave1:2181,slave2:2181</value></property>
hdfs-site.xml
vi /opt/module/hadoop/etc/hadoop/hdfs-site.xml
    <!--完全分布式集群名称 --><property><name>dfs.nameservices</name><value>hadoopcluster</value></property><!--集群中NameNode节点 --><property><name>dfs.ha.namenodes.hadoopcluster</name><value>nn1,nn2</value></property><!--NameNode存储目录--><property><name>dfs.namenode.name.dir</name><value>file://${hadoop.tmp.dir}/name</value></property><!--DataNode存储目录 --><property><name>dfs.datanode.data.dir</name><value>file://${hadoop.tmp.dir}/data</value></property><!--JournalNode存储目录 --><property><name>dfs.journalnode.edits.dir</name><value>${hadoop.tmp.dir}/jn</value></property><!--NameNode的RPC通信地址--><property><name>dfs.namenode.rpc-address.hadoopcluster.nn1</name><value>master:8020</value></property><property><name>dfs.namenode.rpc-address.hadoopcluster.nn2</name><value>slave1:8020</value></property><!--NameNode的http通信地址--><property><name>dfs.namenode.http-address.hadoopcluster.nn1</name><value>master:9870</value></property><property><name>dfs.namenode.http-address.hadoopcluster.nn2</name><value>slave1:9870</value></property><!--NameNode元数据在JournalNode上的存放位置 --><property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://master:8485;slave1:8485;slave2:8485/hadoopcluster</value></property><!--访问代理类:client用于确定哪个NmaeNode为Active--><property><name>dfs.client.failover.proxy.provider.hadoopcluster</name><value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><!--配置隔离机制,即同一时刻只能有一台服务器对外相应--><property><name>dfs.ha.fencing.methods</name><value>sshfence</value></property><!--使用隔离机制时需要ssh密钥登录 --><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/root/.ssh/id_rsa</value></property>
yarn-site.xml
vi /opt/module/hadoop/etc/hadoop/yarn-site.xml
    <!-- 启用 NodeManager 的辅助服务:用于支持 MapReduce 程序的 Shuffle 操作 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 启用 ResourceManager 的高可用 (HA) 功能 --><property><name>yarn.resourcemanager.ha.enabled</name><value>true</value></property><!-- 指定集群的唯一标识符,多个 ResourceManager 应归属于同一个集群 --><property><name>yarn.resourcemanager.cluster-id</name><value>cluster-yarn1</value></property><!-- 定义 HA 模式下的 ResourceManager 标识符列表 --><property><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value></property><!-- 配置第一个 ResourceManager 的主机名 --><property><name>yarn.resourcemanager.hostname.rm1</name><value>master</value></property><!-- 配置第一个 ResourceManager 的 Web 管理页面地址 --><property><name>yarn.resourcemanager.webapp.address.rm1</name><value>master:8088</value></property><!-- 配置第一个 ResourceManager 的客户端通信地址 --><property><name>yarn.resourcemanager.address.rm1</name><value>master:8032</value></property><!-- 配置第一个 ResourceManager 的调度器通信地址 --><property><name>yarn.resourcemanager.scheduler.address.rm1</name><value>master:8030</value></property><!-- 配置第一个 ResourceManager 的资源跟踪器通信地址 --><property><name>yarn.resourcemanager.resource-tracker.address.rm1</name><value>master:8031</value></property><!-- 配置第二个 ResourceManager 的主机名 --><property><name>yarn.resourcemanager.hostname.rm2</name><value>slave1</value></property><!-- 配置第二个 ResourceManager 的 Web 管理页面地址 --><property><name>yarn.resourcemanager.webapp.address.rm2</name><value>slave1:8088</value></property><!-- 配置第二个 ResourceManager 的客户端通信地址 --><property><name>yarn.resourcemanager.address.rm2</name><value>slave1:8032</value></property><!-- 配置第二个 ResourceManager 的调度器通信地址 --><property><name>yarn.resourcemanager.scheduler.address.rm2</name><value>slave1:8030</value></property><!-- 配置第二个 ResourceManager 的资源跟踪器通信地址 --><property><name>yarn.resourcemanager.resource-tracker.address.rm2</name><value>slave1:8031</value></property><!-- 配置用于存储 YARN HA 元数据的 ZooKeeper 地址 --><property><name>yarn.resourcemanager.zk-address</name><value>master:2181,slave1:2181,slave2:2181</value></property><!-- 启用 ResourceManager 的恢复功能 --><property><name>yarn.resourcemanager.recovery.enabled</name><value>true</value></property><!-- 配置 ResourceManager 的状态存储类为 ZKRMStateStore,用于 HA 模式 --><property><name>yarn.resourcemanager.store.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value></property><!-- 配置 NodeManager 允许的环境变量白名单 --><property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value></property>
mapred-site.xml
vi /opt/module/hadoop/etc/hadoop/mapred-site.xml
<!-- 指定MapReduce程序运行在Yarn上 --><property><name>mapreduce.framework.name</name><value>yarn</value></property>
hadoop-env.sh
vi /opt/module/hadoop/etc/hadoop/hadoop-env.sh

把下面代码复制到这个文件末尾

export JAVA_HOME=/opt/module/java
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root
workers
vi /opt/module/hadoop/etc/hadoop/workers

localhost删除这个填下面的代码

master
slave1
slave2
分发到集群去
scp -rq /opt/module/hadoop slave1:/opt/module/
scp -rq /opt/module/hadoop slave2:/opt/module/
三节点上输入以下命令启动journalnode服务

[root@master ~]# hdfs --daemon start journalnode
[root@slave1 ~]# hdfs –-daemon start journalnode
[root@slave2 ~]# hdfs –-daemon start journalnode

初始化 HDFS

master

hdfs zkfc -formatZK
hdfs namenode -format

slave1

hdfs zkfc -formatZK
hdfs namenode -bootstrapStandby
第二步:启动yarn与hdfs的HA集群(Hadoop HA集群)

启动 HDFS

start-dfs.sh

启动 YARN

start-yarn.sh

将nn1切换为Active

hdfs haadmin -transitionToActive nn1

查看nn1是否Active

hdfs haadmin -getServiceState nn1
第三步:在Master节点上使用命令分别查看服务nn2与rm2进程状态

查看服务nn2进程状态

hdfs haadmin -getServiceState nn2

查看服务rm2进程状态

yarn rmadmin -getServiceState rm2

5、 Hadoop HA配置并启动完毕后,使用jps在slave1节点查看服务进程,将查看命令及结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。

第一步:使用jps在slave1节点查看服务进程

END

一键三连是我写文章的动力!

声明:此文章为个人学习笔记,如文章有问题欢迎留言探讨,也希望您的指正 !

相关文章:

Hadoop HA安装配置(容器环境),大数据职业技能竞赛模块A平台搭建,jdk+zookeeper+hadoop HA

HA概述 &#xff08;1&#xff09; 所谓HA&#xff08;High Availablity&#xff09;,即高可用&#xff08;7*24小时不中断服务&#xff09;。 &#xff08;2&#xff09; 实现高可用最关键的策略是消除单点故障&#xff0c;HA严格来说应该分为各个组件的HA机制&#xff0c;H…...

使用javascript读取波形文件数据,并生成动态的波形图

代码如下&#xff1a; // HTML5 Canvas 动态波形生成器 // 使用JS读取波形文件并生成动态波形// 创建Canvas并设置上下文 const canvas document.createElement(canvas); canvas.width 800; canvas.height 400; document.body.appendChild(canvas); const ctx canvas.getC…...

服务器系统维护与安全配置

一、硬件系统的安全防护   硬件的安全问题也可以分为两种&#xff0c;一种是物理安全&#xff0c;一种是设置安全。   1、物理安全   物理安全是指防止意外事件或人为破坏具体的物理设备&#xff0c;如服务器、交换机、路由器、机柜、线路等。机房和机柜的钥匙一定要管理…...

大模型Weekly 03|OpenAI o3发布;DeepSeek-V3上线即开源!

大模型Weekly 03&#xff5c;OpenAI o3发布&#xff1b;DeepSeek-V3上线即开源&#xff01;DeepSeek-V3上线即开源&#xff1b;OpenAI 发布高级推理模型 o3https://mp.weixin.qq.com/s/9qU_zzIv9ibFdJZ5cTocOw?token47960959&langzh_CN 「青稞大模型Weekly」&#xff0c;持…...

Spring Boot自定义注解获取当前登录用户信息

写在前面 在项目开发过程中&#xff0c;难免都要获取当前登录用户的信息。通常的做法&#xff0c;都是开发一个获取用户信息的接口。 如果在本项目中&#xff0c;多处都需要获取登录用户的信息&#xff0c;难不成还要调用自己写的接口吗&#xff1f;显然不用&#xff01; 以…...

js创建二维空数组

js创建二维空数组 错误使用原因分析分析1举个例子&#xff1a;解释&#xff1a; 正确创建二维数组总结&#xff1a; 错误使用 今天在写代码的时候&#xff0c;需要创建一个长度为2的空二维数组&#xff0c;我当时第一反应就是&#xff0c;使用let arr new Array(2).fill([])&…...

AF3 checkpoint_blocks函数解读

checkpoint_blocks 函数实现了一种分块梯度检查点机制 (checkpoint_blocks),目的是通过分块(chunking)执行神经网络模块,减少内存使用。在深度学习训练中,梯度检查点(activation checkpointing)是一种显存优化技术。该代码可以: 对神经网络的块(blocks)按需分块,并对…...

下载并使用CICFlowMeter提取网络流特征(Windows版本)

CICFlowMeter简介 CICFlowMeter是一款流量特征提取工具&#xff0c;从原始的pcap包中聚合流&#xff0c;并提取流特征到csv格式的文件中。使用CICFlowMeter提取的特征有助于后续基于网络流的分析与建模 官方github地址&#xff1a;https://github.com/ahlashkari/CICFlowMete…...

深入了解JSON-LD:语义化网络数据的桥梁

目录 前言1. JSON-LD概述1.1 什么是JSON-LD&#xff1f;1.2 JSON-LD的优势 2. JSON-LD的核心概念2.1 上下文&#xff08;Context&#xff09;2.2 词汇表&#xff08;Vocabulary&#xff09;2.3 标注语言&#xff08;Markup Language&#xff09; 3. JSON-LD的语法与结构3.1 基本…...

分布式 IO 模块助力冲压机械臂产线实现智能控制

在当今制造业蓬勃发展的浪潮中&#xff0c;冲压机械臂产线的智能化控制已然成为提升生产效率、保障产品质量以及增强企业竞争力的关键所在。而分布式 IO 模块的应用&#xff0c;正如同为这条产线注入了一股强大的智能动力&#xff0c;开启了全新的高效生产篇章。 传统挑战 冲压…...

webrtc源码编译【linux/安卓】

编译webrtc库 环境ubuntu22.04 推荐在linux里运行一个docker容器&#xff0c;在新环境里搭建。 准备工作 #我使用了下面的安装命令。目前知道的必须需要的 git python3 unzip ninja jdk file lsb-release apt install -y git curl build-essential python3 python3-pip pyt…...

亚矩阵云手机

亚矩阵云手机是一个集成了云计算、大数据、人工智能和边缘计算等先进技术的云平台&#xff0c;它通过ARM虚拟化技术在云端运行手机应用&#xff0c;提供了全面、高效且稳定的服务。以下是对亚矩阵云手机的详细解析: 技术基础与架构 1.ARM虚拟化技术:亚矩阵云手机基于ARM服务器和…...

Flink状态编程

Flink处理机制的核心就是“有状态的流处理”&#xff0c;在某些情况下&#xff0c;一条数据的计算不仅要基于当前数据自身&#xff0c;还需要依赖数据流中的一些其他数据。这些在一个任务中&#xff0c;用来辅助计算的数据我们就称之为这个任务的状态。 一、按键分区状态&…...

【Django篇】--动手实现路由模块化与路由反转

一、路由模块化 在一个Django项目中&#xff0c;由于功能类别不同&#xff0c;因此需要将不同功能进行模块化设计。在Django项目中模块化设计则需要将不同模块封装为对应的app模块&#xff0c;每一个模块中涉及到的路由则也需要进行模块化设计&#xff0c;才能更好的让整个项目…...

多元统计分析练习题3

从总体 A A A 和 B B B 中分别抽取 n 10 n10 n10 个样本 假设 A , B A,B A,B 协方差矩阵相同&#xff0c;并且服从多元正态分布 计算得到的样本均值和样本离差阵分别为 X ‾ A ( 1 , 2 , 3 ) T , V B d i a g ( 1 , 1 , 1 ) X ‾ B ( 1.5 , 2.5 , 3.5 ) T , V B d i…...

windows remote desktop service 远程桌面RDS授权激活

windows remote desktop service 远程桌面RDS授权激活 功能介绍&#xff1a;操作步骤&#xff1a;1、添加远程桌面授权服务2、添加远程桌面授权许可 功能介绍&#xff1a; 本文以 windows Server 2016为例&#xff0c;系统默认远程桌面连接数是2个用户&#xff0c;如果多余两个…...

6-pandas数据读取

前言 一、分组聚合 1.groupby使用&#xff1a; groupby() 是 pandas 库中用于对数据进行分组操作的一个非常重要的方法。 import pandas as pddata {城市: [北京, 上海, 广州, 北京, 上海, 广州],人口: [2154, 2424, 1303, 2154, 2424, 1303],年龄: [25, 30, 35, 25, 30, 3…...

【Logback详解】

Logback详解 Logback 是一个用于 Java 应用的日志框架&#xff0c;它由 Log4j 的创始人 Ceki Glc 创建。Logback 分为三个模块&#xff1a;logback-core、logback-classic 和 logback-access。logback-classic 模块实现了 SLF4J (Simple Logging Facade for Java) API&#xf…...

Flume的概念和原理

一、Flume的概念 1、flume 作为 cloudera 开发的实时日志收集系统 2、flume一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方&#xff0c;用于收集数据;同时&#xff0c;Flume提供对数据进行简单处理&#xff0c;并写到各种…...

初始nginx

华子目录 nginx介绍nginx功能介绍基础特性web服务相关功能nginx进程结构web请求处理机制 nginx进程间通信nginx启动与http连接建立http处理过程 nginx模块介绍nginx命令演示 nginx介绍 nginx是免费的、开源的、高性能的HTTP和反向代理服务器、邮件代理服务器、以及TCP/UDP代理服…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目&#xff0c;设置虚拟环境&#xff0c;出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...

【WebSocket】SpringBoot项目中使用WebSocket

1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖&#xff0c;添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...