deepin 安装 zookeeper

deepin 安装 zookeeper

1、升级软件

bash 复制代码
sudo apt update
bash 复制代码
sudo apt -y dist-upgrade

2、安装常用软件

bash 复制代码
sudo apt -y install gcc make openssl libssl-dev libpcre3 libpcre3-dev libgd-dev \
 rsync openssh-server vim man zip unzip net-tools tcpdump lrzsz tar wget

3、开启ssh

bash 复制代码
sudo vim /etc/ssh/ssh_config

追加以下内容

bash 复制代码
Port 22

重启ssh服务

bash 复制代码
sudo systemctl restart ssh

4、修改主机名

bash 复制代码
sudo hostnamectl set-hostname lihaozhe

5、修改hosts配置文件

bash 复制代码
vim /etc/hosts

修改内容如下:

bash 复制代码
192.168.10.10	lihaozhe

重启系统

bash 复制代码
sudo reboot

6. 配置ssh免密钥登录

创建本地秘钥并将公共秘钥写入认证文件

bash 复制代码
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
bash 复制代码
ssh-copy-id lhz@lihaozhe

7. 下载安装JDK和Zookeeper并配置环境变量

在所有主机节点创建软件目录

bash 复制代码
mkdir -p /home/lhz/opt

以下操作在 lihaozhe01 主机上完成
进入软件目录

bash 复制代码
cd /home/lhz/opt

下载JDK

bash 复制代码
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz

下载 Zookeeper

bash 复制代码
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.9.3/apache-zookeeper-3.9.3-bin.tar.gz

解压 JDK 修改名称

解压 zookeeper 修改名称

bash 复制代码
tar -zxvf jdk-8u421-linux-x64.tar.gz
tar -zxvf jdk-21_linux-x64_bin.tar.gz
tar -zxvf apache-zookeeper-3.9.3-bin.tar.gz

mv jdk1.8.0_421 jdk-8
mv jdk-21.0.5 jdk-21
mv apache-zookeeper-3.9.3-bin zookeeper-3

配置环境变量

bash 复制代码
vim /home/lhz/.bashrc

追加以下内容:

bash 复制代码
export Java_HOME=/opt/soft/jdk-8
export M2_HOME=/home/lhz/opt/maven
export ZOOKEEPER_HOME=/home/lhz/opt/zookeeper-3

export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin:$ZOOKEEPER_HOME/bin

验证环境变量

bash 复制代码
printenv

10. 编辑配置文件

bash 复制代码
rm -rf $ZOOKEEPER_HOME/docs
bash 复制代码
cd $ZOOKEEPER_HOME/conf
bash 复制代码
vim zoo.cfg
bash 复制代码
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/lhz/data/zookeeper/data
dataLogDir=/home/lhz/data/zookeeper/datalog 
clientPort=2181
maxClientCnxns=1000
autopurge.snapRetainCount=7
autopurge.purgeInterval=1
minSessionTimeout=4000
maxSessionTimeout=40000
admin.serverPort=9001

11. 保存后根据配置文件创建目录

bash 复制代码
mkdir -p /home/lhz/data/zookeeper/data
mkdir -p /home/lhz/data/zookeeper/datalog

12. 编写zookeeper-3开机启动脚本

在/etc/systemd/system/文件夹下创建一个启动脚本zookeeper-3.service

注意:在每台服务器上编写

bash 复制代码
cd /etc/systemd/system
sudo vim zookeeper.service

内容如下:

bash 复制代码
[Unit]
Description=zookeeper
After=syslog.target network.target

[Service]
Type=forking
Environment=ZOO_LOG_DIR=/home/lhz/data/zookeeper/datalog 
Environment=JAVA_HOME=/home/lhz/opt/jdk-21
ExecStart=/home/lhz/opt/zookeeper-3/bin/zkServer.sh start
ExecStop=/home/lhz/opt/zookeeper-3/bin/zkServer.sh stop
Restart=always
User=root
Group=root

[Install]
WantedBy=multi-user.target

13. 启动服务

bash 复制代码
systemctl daemon-reload
systemctl start zookeeper
systemctl enable zookeeper
systemctl status zookeeper

14. 验证

bash 复制代码
jps
bash 复制代码
zkServer.sh status

15. 浏览器访问 AdminServer

浏览器访问:http://lihaozhe:9001/commands

zookeeper shell

zookeeper 存储结构类似于Linux文件系统 使用根结构

node 不是文件也不是目录

客户端命令行

bash 复制代码
# 连接本地服务
zkCli.sh
# 连接其他节点
zkCli.sh -server lihaozhe:2181

查看帮助

bash 复制代码
help
ZooKeeper -server host:port -client-configuration properties-file cmd args
	addWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTENT_RECURSIVE] - default is PERSISTENT_RECURSIVE
	addauth scheme auth
	close 
	config [-c] [-w] [-s]
	connect host:port
	create [-s] [-e] [-c] [-t ttl] path [data] [acl]
	delete [-v version] path
	deleteall path [-b batch size]
	delquota [-n|-b|-N|-B] path
	get [-s] [-w] path
	getAcl [-s] path
	getAllChildrenNumber path
	getEphemerals path
	history 
	listquota path
	ls [-s] [-w] [-R] path
	printwatches on|off
	quit 
	reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
	redo cmdno
	removewatches path [-c|-d|-a] [-l]
	set [-s] [-v version] path data
	setAcl [-s] [-v version] [-R] path acl
	setquota -n|-b|-N|-B val path
	stat [-w] path
	sync path
	version 
	whoami

连接其他节点

bash 复制代码
# 在某节点连接其他节点
connect lihaozhe01:2181

退出

bash 复制代码
quit

查看节点

bash 复制代码
ls /
ls -s /
bash 复制代码
cZxid = 0x0	# 节点创建的时候的zxid 
ctime = Thu Jan 01 08:00:00 CST 1970  # 节点创建的时候的zxid
mZxid = 0x0 #节点修改的时候的zxid,与子节点的修改无关
mtime = Thu Jan 01 08:00:00 CST 1970 # 节点修改的时间
pZxid = 0x0  # 子节点的创建/删除对应的 zxid,和修改无关,和孙子节点无关
cversion = -1 # 子节点的更新次数
dataVersion = 0 # 节点数据的更新次数
aclVersion = 0 # 节点(ACL)的更新次数
ephemeralOwner = 0x0 # 值表示与该节点绑定的 session id. 如果该节点不是 ephemeral 节点, ephemeralOwner 值为0
dataLength = 0  # 节点数据的字节数
numChildren = 1 # 节点数据的字节数

创建节点

持久

临时

有序号

无序号

bash 复制代码
# 持久无序号
# 节点lihaozhe存储的数据是 李昊哲
create /lihaozhe "李昊哲"
# 节点lihaozhe存储的数据是 空
create /lihaozhe ""

# 查看该节点中的文件或目录,[]代表其中没有文件或子目录
[zk: localhost:2181(CONNECTED) 7] ls /lihaozhe
[]

# 创建持久无序号子节点
create /lihaozhe/zk01
# 创建持久有序号子节点
create -s /lihaozhe/zk01

# 创建临时无序号节点
create -e /lihaozhe/zk10
# 创建临时有序号节点
create -e -s /lihaozhe/zk10

删除节点

bash 复制代码
delete /lihaozhe/zk04
delete /lihaozhe/zk01 # Node not empty: /lihaozhe/zk01
deleteall /lihaozhe

获取节点数据

bash 复制代码
get /lihaozhe

设置节点数据

bash 复制代码
set /lihaozhe "李大宝"

关闭当前session

bash 复制代码
close

监听

bash 复制代码
# NodeChildrenChanged
ls -w /lihaozhe
# NodeDataChanged
stat -w /lihaozhe
# 

0

复制代码
### 删除节点

```bash
delete /lihaozhe/zk04
delete /lihaozhe/zk01 # Node not empty: /lihaozhe/zk01
deleteall /lihaozhe

获取节点数据

bash 复制代码
get /lihaozhe

设置节点数据

bash 复制代码
set /lihaozhe "李大宝"

关闭当前session

bash 复制代码
close

监听

bash 复制代码
# NodeChildrenChanged
ls -w /lihaozhe
# NodeDataChanged
stat -w /lihaozhe
# 
相关推荐
2601_9492210321 小时前
Splashtop赋能企业级远程办公全场景安全连接成选型优选
运维·人工智能·安全
七度黑光21 小时前
用 openclaw 给故障复盘打分:质量审核自动化实践
运维·服务器·前端·数据库·自动化
last demo1 天前
mysql
运维·数据库·mysql·oracle
灰阳阳1 天前
Dockerfile实践-构建Nginx镜像
运维·nginx·docker·dockerfile
Johnstons1 天前
网络流量监控工具怎么选
运维·网络·网络故障排除·网络流量分析·网络性能监控
AI先驱体验官1 天前
智能体变现:从技术实现到产品化的实践路径
大数据·人工智能·深度学习·重构·aigc
TDengine (老段)1 天前
TDengine IDMP 工业数据建模 —— 属性
大数据·数据库·人工智能·时序数据库·tdengine·涛思数据
得物技术1 天前
Redis 自动化运维最佳实践|得物技术
大数据·redis
信创DevOps先锋1 天前
中国DevOps工具链选型新趋势:合规、协同与生态融合的平衡之道
运维·gitee·devops
Elastic 中国社区官方博客1 天前
Elasticsearch:如何在 Elastic AI Builder 里使用 DSL 来查询 Elasticsearch
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索