自学内容网 自学内容网

deepin 安装 zookeeper

deepin 安装 zookeeper

1、升级软件

sudo apt update
sudo apt -y dist-upgrade

2、安装常用软件

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

sudo vim /etc/ssh/ssh_config

追加以下内容

Port 22

重启ssh服务

sudo systemctl restart ssh

4、修改主机名

sudo hostnamectl set-hostname lihaozhe

5、修改hosts配置文件

vim /etc/hosts

修改内容如下:

192.168.10.10lihaozhe

重启系统

sudo reboot

6. 配置ssh免密钥登录

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

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id lhz@lihaozhe

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

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

mkdir -p /home/lhz/opt

以下操作在 lihaozhe01 主机上完成

进入软件目录

cd /home/lhz/opt

下载JDK

wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz

下载 Zookeeper

wget https://dlcdn.apache.org/zookeeper/zookeeper-3.9.3/apache-zookeeper-3.9.3-bin.tar.gz

解压 JDK 修改名称

解压 zookeeper 修改名称

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

配置环境变量

vim /home/lhz/.bashrc

追加以下内容:

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

验证环境变量

printenv

10. 编辑配置文件

rm -rf $ZOOKEEPER_HOME/docs
cd $ZOOKEEPER_HOME/conf
vim zoo.cfg
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. 保存后根据配置文件创建目录

mkdir -p /home/lhz/data/zookeeper/data
mkdir -p /home/lhz/data/zookeeper/datalog

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

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

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

cd /etc/systemd/system
sudo vim zookeeper.service

内容如下:

[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. 启动服务

systemctl daemon-reload
systemctl start zookeeper
systemctl enable zookeeper
systemctl status zookeeper

14. 验证

jps
zkServer.sh status

15. 浏览器访问 AdminServer

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

zookeeper

zookeeper shell

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

node 不是文件也不是目录

客户端命令行

# 连接本地服务
zkCli.sh
# 连接其他节点
zkCli.sh -server lihaozhe:2181

查看帮助

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

连接其他节点

# 在某节点连接其他节点
connect lihaozhe01:2181

退出

quit

查看节点

ls /
ls -s /
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 # 节点数据的字节数

创建节点

持久

临时

有序号

无序号

# 持久无序号
# 节点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

删除节点

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

获取节点数据

get /lihaozhe

设置节点数据

set /lihaozhe "李大宝"

关闭当前session

close

监听

# NodeChildrenChanged
ls -w /lihaozhe
# NodeDataChanged
stat -w /lihaozhe
# 

0


### 删除节点

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

获取节点数据

get /lihaozhe

设置节点数据

set /lihaozhe "李大宝"

关闭当前session

close

监听

# NodeChildrenChanged
ls -w /lihaozhe
# NodeDataChanged
stat -w /lihaozhe
# 

原文地址:https://blog.csdn.net/qq_24330181/article/details/144667911

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!