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

centos8上安装hbase

【README】

1.本文部分内容转自:

https://computingforgeeks.com/how-to-install-apache-hadoop-hbase-on-centos-7/

2.本文是在单机上安装hbase (仅用于学习交流); 


【1】更新系统

因为 hadoop和hbase是动态的,为便于hbase能够最大限度访问系统资源和网络权限,安装hbase前先关闭 SELinux与防火墙;

sudo systemctl disable --now firewalld
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
cat /etc/selinux/config | grep SELINUX= | grep -v '#'

更新系统(软件包)并重启

sudo yum -y install epel-release
sudo yum -y install vim wget curl bash-completion
sudo yum -y update
sudo reboot


【2】安装java  

sudo yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

校验java版本 

[root@centos202 ~]# java -version
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)

设置 JAVA_HOME 环境变量 

cat <<EOF | sudo tee /etc/profile.d/hadoop_java.sh
export JAVA_HOME=\$(dirname \$(dirname \$(readlink \$(readlink \$(which javac)))))
export PATH=\$PATH:\$JAVA_HOME/bin
EOF

更新 $PATH变量和设置

source /etc/profile.d/hadoop_java.sh
[root@centos202 profile.d]# echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64

【3】创建hadoop账号

创建独立的hadoop账号; 

sudo adduser hadoop
passwd hadoop
sudo usermod -aG wheel hadoop

生成ssh key用于免密登录

[root@centos202 ~]# sudo su - hadoop
[hadoop@centos202 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): 
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:HuqG5V6O7Od64sQdmXUFedVNc/GEda4ujA+xuivxs2k hadoop@centos202
The key's randomart image is:
+---[RSA 3072]----+
|            .o.B@|
|            ..ooB|
|          . ..  o|
|         + .   . |
|        S .   .  |
|     .o+ o = .   |
|     ++o+ + o .  |
|    .+=+Eo o .   |
|     =OOO=  .    |
+----[SHA256]-----+

把用户hadoop添加到ssh免密登录授权列表;

[hadoop@centos202 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[hadoop@centos202 ~]$ chmod 0600 ~/.ssh/authorized_keys

使用生成的ssh key登录本机

[hadoop@centos202 ~]$ ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:EdoFy44sWPaZHE6jgJCVGkbGKxK63ToPAP24sQ2Gj3Y.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Last login: Sun Mar  5 03:56:07 2023

【4】下载并安装hadoop 

下载 hadoop, hadoop安装包参见 https://hadoop.apache.org/releases.html ;

方式1)可以用 wget直接下载

wget https://www-eu.apache.org/dist/hadoop/common/hadoop-$RELEASE/hadoop-$RELEASE.tar.gz

方式2)利用代理下载到本地(window10),然后通过 rz 从windows传输到 centos(本文采用);

本文版本:hadoop-3.2.4.tar.gz 

[root@centos202 hadoop]# ls -l
total 480832
-rwxrwxrwx. 1 root root 492368219 Jan 30 22:20 hadoop-3.2.4.tar.gz

解压 

tar -xzvf hadoop-3.2.4.tar.gz 
# 结果
[root@centos202 hadoop-3.2.4]# pwd
/usr/local/hadoop/hadoop-3.2.4
[root@centos202 hadoop-3.2.4]# ls
bin  etc  include  lib  libexec  LICENSE.txt  NOTICE.txt  README.txt  sbin  share

把 hadoop家目录添加到 $PATH 

cat <<EOF | sudo tee /etc/profile.d/hadoop_java.sh
export JAVA_HOME=\$(dirname $(dirname $(readlink $(readlink $(which javac)))))
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.2.4
export HADOOP_HDFS_HOME=\$HADOOP_HOME
export HADOOP_MAPRED_HOME=\$HADOOP_HOME
export YARN_HOME=\$HADOOP_HOME
export HADOOP_COMMON_HOME=\$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=\$HADOOP_HOME/lib/native
export PATH=\$PATH:\$JAVA_HOME/bin:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin
EOF

source命令刷新当前执行环境,添加hadoop_java.sh文件中定义的环境变量;

source /etc/profile.d/hadoop_java.sh

查看hadoop版本:

[root@centos202 hadoop-3.2.4]# hadoop version
Hadoop 3.2.4
Source code repository Unknown -r 7e5d9983b388e372fe640f21f048f2f2ae6e9eba
Compiled by ubuntu on 2022-07-12T11:58Z
Compiled with protoc 2.5.0
From source with checksum ee031c16fe785bbb35252c749418712
This command was run using /usr/local/hadoop/hadoop-3.2.4/share/hadoop/common/hadoop-common-3.2.4.jar

【5】配置hadoop 

所有hadoop的配置都在 /usr/local/hadoop/hadoop-3.2.4/etc/hadoop 目录下; 

[root@centos202 hadoop]# pwd
/usr/local/hadoop/hadoop-3.2.4/etc/hadoop
[root@centos202 hadoop]# ls 
capacity-scheduler.xml      hadoop-policy.xml                 kms-acls.xml          mapred-queues.xml.template     yarn-env.cmd
configuration.xsl           hadoop-user-functions.sh.example  kms-env.sh            mapred-site.xml                yarn-env.sh
container-executor.cfg      hdfs-site.xml                     kms-log4j.properties  shellprofile.d                 yarnservice-log4j.properties
core-site.xml               httpfs-env.sh                     kms-site.xml          ssl-client.xml.example         yarn-site.xml
hadoop-env.cmd              httpfs-log4j.properties           log4j.properties      ssl-server.xml.example
hadoop-env.sh               httpfs-signature.secret           mapred-env.cmd        user_ec_policies.xml.template
hadoop-metrics2.properties  httpfs-site.xml                   mapred-env.sh         workers

许多配置文件需要修改以完成hadoop的安装; 


【5.1】hadoop-env.sh 

编辑 hadoop-env.sh 文件的 JAVA_HOME (54行) 

vim hadoop-env.sh
export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac))))) 
  1. 编辑 core-site.xml  文件 

core-site.xml 文件包含hadoop集群启动所需信息,其属性包括:

  • hadoop实例端口号; 

  • 文件系统分配内存大小; 

  • 数据存储的内存限制; 

  • 读写缓冲区大小; 

编辑如下: 在 <configuration>元素内新增文件系统属性:

<configuration><property><name>fs.default.name</name><value>hdfs://localhost:9000</value><description>The default file system URI</description></property></configuration>

【5.2】hdfs-site.xml 

这个文件是集群中所有主机都需要配置的问题。其包含的内容如下。

  • namenode和datanode在文件系统中的路径;

  • 副本数据的值

  1. 创建namenode 与 datanode 文件夹, 把 hadoop文件所有者修改为 hadoop:hadoop  

[hadoop@centos202 hadoop]$ sudo mkdir -p /hadoop/hdfs/{namenode,datanode}
[sudo] password for hadoop: 
[hadoop@centos202 hadoop]$ 
[hadoop@centos202 hadoop]$ sudo chown -R hadoop:hadoop /hadoop
  1. 编辑hdfs-site.xml ,如下:

<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.name.dir</name><value>file:///hadoop/hdfs/namenode</value></property><property><name>dfs.data.dir</name><value>file:///hadoop/hdfs/datanode</value></property>
</configuration>

【5.3】mapred-site.xml 

用于设置 mapreduce框架; 

编辑如下:

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>

【5.4】yarn-site.xml 

yarn-site.xml 定义了资源管理和job调度逻辑。编辑如下;

<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>

【6】验证hadoop配置(启动hadoop)

  1. 切换到haodop , 

sudo su - hadoop

【6.1】格式化 hdfs namenode 

格式化的作用是: 删除hdfs的所有文件夹;临时文件夹包含 datanode和namenode,如果格式化namenode,这些文件都会变为空。

小结:namenode维护了与datanode关联的元数据,当我们格式化时,也会格式化这些元数据,以便新数据复用。

you also refer2 https://stackoverflow.com/questions/27143409/what-the-command-hadoop-namenode-format-will-do

【6.2】启动hdfs

[hadoop@centos202 ~]$ start-dfs.sh
Starting namenodes on [localhost]
Starting datanodes
Starting secondary namenodes [centos202]
centos202: Warning: Permanently added 'centos202,192.168.163.202' (ECDSA) to the list of known hosts.
2023-03-05 05:18:42,008 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[hadoop@centos202 ~]$ 

【6.3】启动yarn 

[hadoop@centos202 ~]$ start-yarn.sh
Starting resourcemanager
Starting nodemanagers

【6.4】hadoop web ui界面

1)hadoop3.x 的 默认web ui端口如下:

  • namenode(hadoop仪表盘):9870

  • resource manager(hadop集群概览): 8088

  • MapReduce job history server:19888 

 我们导出hadoop使用的端口:

[hadoop@centos202 ~]$ ss -tunelp | grep java
tcp   LISTEN 0      128          0.0.0.0:8030       0.0.0.0:*    users:(("java",pid=15007,fd=320)) uid:1000 ino:81561 sk:1 <-> 
tcp   LISTEN 0      128          0.0.0.0:8031       0.0.0.0:*    users:(("java",pid=15007,fd=310)) uid:1000 ino:80766 sk:2 <-> 
tcp   LISTEN 0      128          0.0.0.0:8032       0.0.0.0:*    users:(("java",pid=15007,fd=330)) uid:1000 ino:81957 sk:3 <-> 
tcp   LISTEN 0      128          0.0.0.0:8033       0.0.0.0:*    users:(("java",pid=15007,fd=299)) uid:1000 ino:80016 sk:4 <-> 
tcp   LISTEN 0      128          0.0.0.0:41059      0.0.0.0:*    users:(("java",pid=15158,fd=306)) uid:1000 ino:88126 sk:5 <-> 
tcp   LISTEN 0      128        127.0.0.1:44965      0.0.0.0:*    users:(("java",pid=14546,fd=279)) uid:1000 ino:74525 sk:6 <-> 
tcp   LISTEN 0      128          0.0.0.0:8040       0.0.0.0:*    users:(("java",pid=15158,fd=317)) uid:1000 ino:88014 sk:7 <-> 
tcp   LISTEN 0      128          0.0.0.0:9864       0.0.0.0:*    users:(("java",pid=14546,fd=308)) uid:1000 ino:74543 sk:8 <-> 
tcp   LISTEN 0      128        127.0.0.1:9000       0.0.0.0:*    users:(("java",pid=14418,fd=285)) uid:1000 ino:70479 sk:9 <-> 
tcp   LISTEN 0      128          0.0.0.0:8042       0.0.0.0:*    users:(("java",pid=15158,fd=328)) uid:1000 ino:88858 sk:a <-> 
tcp   LISTEN 0      128          0.0.0.0:9866       0.0.0.0:*    users:(("java",pid=14546,fd=278)) uid:1000 ino:74483 sk:b <-> 
tcp   LISTEN 0      128          0.0.0.0:9867       0.0.0.0:*    users:(("java",pid=14546,fd=309)) uid:1000 ino:74560 sk:c <-> 
tcp   LISTEN 0      128          0.0.0.0:9868       0.0.0.0:*    users:(("java",pid=14770,fd=279)) uid:1000 ino:77941 sk:d <-> 
tcp   LISTEN 0      128          0.0.0.0:9870       0.0.0.0:*    users:(("java",pid=14418,fd=274)) uid:1000 ino:70244 sk:e <-> 
tcp   LISTEN 0      128          0.0.0.0:8088       0.0.0.0:*    users:(("java",pid=15007,fd=289)) uid:1000 ino:78820 sk:10 <->
tcp   LISTEN 0      128          0.0.0.0:13562      0.0.0.0:*    users:(("java",pid=15158,fd=327)) uid:1000 ino:89419 sk:11 <->

2)访问  centos202:9870  查看hadoop 数据仪表盘 (虚拟机主机名为centos202,也可以通过ip地址访问)

3)访问 centos202:8088 查看hadoop集群概览 

【6.5】创建 hdfs 文件夹 

[hadoop@centos202 ~]$ hadoop fs -mkdir /test
[hadoop@centos202 ~]$ 
[hadoop@centos202 ~]$ hadoop fs -ls /
drwxr-xr-x   - hadoop supergroup          0 2023-03-05 05:29 /test

【补充】停止 hadoop 服务 , 停止 hdfs,yarn

[hadoop@centos202 ~]$ stop-dfs.sh
Stopping namenodes on [localhost]
Stopping datanodes
Stopping secondary namenodes [centos202]
[hadoop@centos202 ~]$ stop-yarn.sh
Stopping nodemanagers
Stopping resourcemanager
[hadoop@centos202 ~]$ 

【7】安装hbase 

【7.1】 下载并安装hbase

  1. hbase安装包, refer2 http://apache.mirror.gtcomm.net/hbase/  

  1. 本文用的版本是 hbase-2.4.15 ; 可以用 wget,也可以用代理下直到本地,然后用rz传输到centos(本文采用这种);

  1. 解压  

sudo tar -xzvf hbase-2.4.15-bin.tar.gz
[hadoop@centos202 hbase-2.4.15]$ pwd
/usr/local/hbase/hbase-2.4.15
[hadoop@centos202 hbase-2.4.15]$ ls
bin  CHANGES.md  conf  docs  hbase-webapps  LEGAL  lib  LICENSE.txt  NOTICE.txt  README.txt  RELEASENOTES.md
  1. 更新 $PATH 环境变量 

cat <<EOF | sudo tee /etc/profile.d/hadoop_java.sh
export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac)))))
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.2.4
export HADOOP_HDFS_HOME=\$HADOOP_HOME
export HADOOP_MAPRED_HOME=\$HADOOP_HOME
export YARN_HOME=\$HADOOP_HOME
export HADOOP_COMMON_HOME=\$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=\$HADOOP_HOME/lib/native
export HBASE_HOME=/usr/local/hbase/hbase-2.4.15
export PATH=\$PATH:\$JAVA_HOME/bin:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin:\$HBASE_HOME/bin
EOF

5.刷新shell环境变量, 并验证 HBASE_HOME

[hadoop@centos202 hbase-2.4.15]$ source /etc/profile.d/hadoop_java.sh
[hadoop@centos202 conf]$ echo $HBASE_HOME
/usr/local/hbase/hbase-2.4.15 

6.编辑 hbase-env.sh   , 设置 JAVA_HOME 

[hadoop@centos202 conf]$ pwd
/usr/local/hbase/hbase-2.4.15/conf
[hadoop@centos202 conf]$ 
[hadoop@centos202 conf]$ 
[hadoop@centos202 conf]$ vim hbase-env.sh

修改28行为:

export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac)))))

【7.2】配置 hbase  (单机安装)

1)就像配置hadoop 一样, 配置hbase; hbase所有的配置文件在  /usr/local/hbase/hbase-2.4.15/conf 目录下;  

2)单机模式下: 所有后台线程(HMaster, HRegionServer, zk)运行在单虚拟机上; 

【7.2.1】创建hbase根文件夹  

[hadoop@centos202 conf]$ sudo mkdir -p /hadoop/hbase/hfile
[hadoop@centos202 conf]$ sudo mkdir -p /hadoop/zookeeper
[hadoop@centos202 conf]$ sudo chown -R hadoop:hadoop /hadoop/

【7.2.2】编辑 hbase-site.xml 文件   

<configuration><property><name>hbase.rootdir</name><value>file:/hadoop/hbase/hfile</value></property><property><name>hbase.zookeeper.property.dataDir</name><value>/hadoop/zookeeper</value></property>
</configuration>

【补充】默认情况下, 除非你配置了 hbase.rootdir ,否则 你的数据仍然存储在 /tmp/ 目录下;  


【7.3】启动hbase

  1. 启动 hbase 

[hadoop@centos202 conf]$ start-hbase.sh 

【补充】hbase安装到集群可以参考 https://computingforgeeks.com/how-to-install-apache-hadoop-hbase-on-centos-7/ 的 option 2.


【7.4】管理HMaster和 HRegionServer (仅参考)

HMaster服务器 控制hbase集群。你可以启动最多9个备用HMaster服务器,共计10个。

HRegionServer  按照 HMaster的指示去管理 StoreFile中的数据。 一般情况,一个HRegionServer 运行在集群的一个节点上。

HMaster 和 HRegionServer 分别用 命令 local-master-backup.sh , local-regionservers.sh 来启动和停止,如下。

local-master-backup.sh start 2 # 启动备用HMaster
local-regionservers.sh start 3 # 启动多个 RegionServers
local-regionservers.sh stop 3 # 停止多个 RegionServers

【补充】

每一个HMaster 使用2个端口(160000 16010)。


【8】启动hbase shell脚本  

  1. hadoop 与 hbase 应该在 运行hbase shell 之前运行,如下: 

start-dfs.sh 
start-yarn.sh  
start-hbase.sh   

【补充】 start-all.sh 可以代替start-dfs 和 start-yarn.sh 

  1. 启动 hbase shell

hbase shell 
  1. 关闭 hbase 

[hadoop@centos202 conf]$ stop-hbase.sh 

相关文章:

centos8上安装hbase

【README】1.本文部分内容转自&#xff1a;https://computingforgeeks.com/how-to-install-apache-hadoop-hbase-on-centos-7/2.本文是在单机上安装hbase &#xff08;仅用于学习交流&#xff09;&#xff1b; 【1】更新系统因为 hadoop和hbase是动态的&#xff0c;为便于hbase…...

linux 进程及调度基础知识

引用Linux进程管理专题Linux进程管理与调度-之-目录导航Linux下0号进程的前世(init_task进程)今生(idle进程)----Linux进程的管理与调度&#xff08;五&#xff09;蜗窝科技-进程管理郭健&#xff1a; Linux进程调度技术的前世今生之“前世”郭健&#xff1a; Linux进程调度技术…...

Python计算分类问题的评价指标(准确率、精确度、召回率和F1值,Kappa指标)

机器学习的分类问题常用评论指标有&#xff1a;准确率、精确度、召回率和F1值&#xff0c;还有kappa指标 。 每次调包去找他们的计算代码很麻烦&#xff0c;所以这里一次性定义一个函数&#xff0c;直接计算所有的评价指标。 每次输入预测值和真实值就可以得到上面的指标值&a…...

51单片机LCD1602的使用

文章目录前言一、LCD1602简单介绍二、LCD1602中各个引脚的作用四、LCD1602命令解析1.写命令2.写数据3.清屏指令4.光标归位指令5.进入模式设置指令6.显示开关控制指令7.设定显示屏或光标移动方向指令三、LCD1602代码编写四、代码测试总结前言 本篇文章将为大家讲解LCD1602的使用…...

[深入理解SSD系列综述 1.5] SSD固态硬盘参数图文解析_选购固态硬盘就像买衣服?

版权声明&#xff1a;付费作品&#xff0c;未经许可&#xff0c;不可转载前言SSD &#xff08;Solid State Drive&#xff09;&#xff0c;即固态硬盘&#xff0c;通常是一种以半导体闪存&#xff08;NAND Flash&#xff09;作为介质的存储设备。SSD 以半导体作为介质存储数据&…...

zio1升级到zio2踩坑和总结

并不全&#xff0c;记录了一些流程和注意点。新项目建议直接用zio2&#xff01; 首先&#xff0c;从1.0迁移到2.0&#xff0c;可以使用官方的scalefix规则完成一部分方法自动替换&#xff08;迁移主要解决方法重命名&#xff0c;去掉Has&#xff09;。 然后&#xff0c;添加依…...

【算法题】1834. 单线程 CPU

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 题目&#xff1a; 给你一个二维数组 tasks &#xff…...

Vue学习[2023]

笔记 一、Vue基础&#xff1a; 1.模板语法有2大类&#xff1a; 插值语法&#xff1a; 功能&#xff1a;用于解析标签体内容。 写法&#xff1a;{{xxx}}&#xff0c;xxx是js表达式&#xff0c;且可以直接读取到data中的所有属性。 指令语法&#xff1a; 功能&#xff1a;用于…...

【Redis】Redis分片集群

【Redis】Redis分片集群 文章目录【Redis】Redis分片集群1. 搭建分片集群1.1 分片集群结构1.2 搭建分片集群1.2.1 集群结构1.2.2 准备实例和配置1.2.3 启动1.2.4 创建集群1.2.5 测试2. 散列插槽2.1 总结3. 集群伸缩4. 故障转移4.1 数据迁移5. RedisTemplate访问分片集群1. 搭建…...

【Android笔记81】Android之RxJava的介绍及其使用

这篇文章,主要介绍Android之RxJava及其使用。 目录 一、RxJava响应式编程 1.1、RxJava介绍 1.2、RxJava常用方法 (1)引入RxJava依赖...

Pr 定格拍照动画

哈喽&#xff0c;各位小伙伴&#xff01;今天我们来学习一下如何制作定格拍照动画&#xff1f; ​ 新建序列 新建一个1920*1080的序列&#xff0c;将视频拖入序列中 选择定格画面右键—插入帧定格分段中间部分就会变成一张图片&#xff08;图片时长可伸缩&#xff09; 复制素…...

放弃node-sass,启用sass

在下载一个新项目时运行&#xff1a;npm run install 发现报错 npm uninstall 异常 Error: Could not find any Visual Studio installation to use 或是 ------------------------- You need to install the latest version of Visual Studio npm ERR! gyp ERR! find VS incl…...

力扣旋转字符串

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f; c语言初阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>:介绍字符串旋转,左旋,右旋即旋转结果. 金句分享: ✨好好干&…...

Java 代码组织机制

包 使用任何语言进行编程都有一个相同的问题&#xff0c;就是命名冲突。 包类似于计算机中的文件夹&#xff0c;正如文件放在文件夹中&#xff0c;类和接口放在包中&#xff0c;为便于组织&#xff0c;文件夹一般是一个层次结构&#xff0c;包也类似。 包有包名&#xff0c;…...

【剧前爆米花--爪哇岛寻宝】MySQL中索引和事务

作者&#xff1a;困了电视剧 专栏&#xff1a;《MySQL数据库》 文章分布&#xff1a;这是一篇关于Java中异常类的文章&#xff0c;在本篇文章中详细讲解了异常的使用逻辑和底层的执行过程&#xff0c;如有疏漏&#xff0c;欢迎大佬指正&#xff01; 目录 索引 用法 底层逻辑…...

C++ 线程库

文章目录thread 创建mutexmutexrecursive_mutextimed_mutexlock_guard原子操作atomic条件变量condition_variable其他线程安全问题shared_ptr单例模式C 线程库是 C11 标准中引入的一个特性&#xff0c;它使得 C 在语言级别上支持多线程编程&#xff0c;不需要依赖第三方库或操作…...

python字典和集合——笔记

一、介绍 1、泛映射类型 collections.abc模块中有Mapping和MutableMapping这两个抽象基类&#xff0c;它们的作用是为dict和其他类似的类型定义形式接口&#xff08;在Python 2.6到Python 3.2的版本中&#xff0c;这些类还不属于collections.abc模块&#xff0c;而是隶属于coll…...

TEX:显示文本

文章目录字体选择字体fontspec宏包根据字体形状控制字体为不同的字体形状选择不同的特征为不同的字体大小状选择不同的特征中文字体选择xeCJK宏包字体选择与设置XELATEX字体名查找字体集与符号居中与缩进居中单边调整两边缩进诗歌缩进列表itemize样例enumerate样例description样…...

SS-ELM-AE与S2-BLS相关论文阅读记录

Broad learning system for semi-supervised learning 摘要&#xff1a;本文认为&#xff0c;原始BLS采用的稀疏自编码器来生成特征节点是一种无监督学习方法&#xff0c;这意味着忽略了标注数据的一些信息&#xff0c;并且难以保证同类样本之间的相似性和相邻性&#xff0c;同…...

ESP32设备驱动-MAX6675冷端补偿K热电偶数字转换器

MAX6675冷端补偿K热电偶数字转换器 1、MAX6675介绍 MAX6675执行冷端补偿并将来自K型热电偶的信号数字化。 数据以 12 位分辨率、SPI™ 兼容的只读格式输出。 该转换器可将温度解析为 0.25C,读数高达 +1024C,并且在 0C 至 +700C 的温度范围内具有 8 LSB 的热电偶精度。 MAX…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...