当前位置: 首页 > 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代理服…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...