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
# 
相关推荐
IT小哥哥呀11 分钟前
电池制造行业数字化实施
大数据·制造·智能制造·数字化·mom·电池·信息化
Xi xi xi15 分钟前
苏州唯理科技近期也正式发布了国内首款神经腕带产品
大数据·人工智能·经验分享·科技
python百炼成钢1 小时前
3.Linux 网络相关
linux·运维·网络·stm32·单片机
Jtti1 小时前
香港硬防服务器防御DDOS攻击的优点
运维·服务器·ddos
yumgpkpm1 小时前
华为鲲鹏 Aarch64 环境下多 Oracle 、mysql数据库汇聚到Cloudera CDP7.3操作指南
大数据·数据库·mysql·华为·oracle·kafka·cloudera
UMI赋能企业2 小时前
制造业流程自动化提升生产力的全面分析
大数据·人工智能
TDengine (老段)2 小时前
TDengine 数学函数 FLOOR 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
lpfasd1233 小时前
第2部分:Netty核心架构与原理解析
运维·服务器·架构
小蜜蜂爱编程4 小时前
gerrit的部署与配置关联到不同服务器上的git仓库
运维·服务器·git·gerrit