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
# 
相关推荐
大数据追光猿16 分钟前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法
技术小齐1 小时前
网络运维学习笔记 016网工初级(HCIA-Datacom与CCNA-EI)PPP点对点协议和PPPoE以太网上的点对点协议(此处只讲华为)
运维·网络·学习
ITPUB-微风1 小时前
Service Mesh在爱奇艺的落地实践:架构、运维与扩展
运维·架构·service_mesh
落幕1 小时前
C语言-进程
linux·运维·服务器
人类群星闪耀时2 小时前
物联网与大数据:揭秘万物互联的新纪元
大数据·物联网·struts
chenbin5202 小时前
Jenkins 自动构建Job
运维·jenkins
java 凯2 小时前
Jenkins插件管理切换国内源地址
运维·jenkins
AI服务老曹2 小时前
运用先进的智能算法和优化模型,进行科学合理调度的智慧园区开源了
运维·人工智能·安全·开源·音视频
sszdzq3 小时前
Docker
运维·docker·容器
book01213 小时前
MySql数据库运维学习笔记
运维·数据库·mysql