服务器列表
hostname | ip |
---|---|
master | 192.168.100.230 |
worker1 | 192.168.100.231 |
worker2 | 192.168.100.232 |
上传Zookeeper并传到每个节点上
上传zk安装包到master节点上,然后传到每个节点上
scp -r apache-zookeeper-3.6.3-bin.tar.gz root@worker1:/root scp -r apache-zookeeper-3.6.3-bin.tar.gz root@worker2:/root
解压安装Zookeeper
#创建存放目录(每个节点使用) mkdir -p /data/zookeeper #解压文件(每个节点使用) tar -xf apache-zookeeper-3.6.3-bin.tar.gz -C /data/zookeeper #修改名称(每个节点使用)存放目录路径根据业务而定,我习惯将zookeeper放在data下。 cd /data/zookeeper mv apache-zookeeper-3.6.3-bin apache-zookeeper-3.6.3 #进入到zookeeper目录中 cd apache-zookeeper-3.6.3 #创建数据存放目录 mkdir data
集群搭建
cd conf mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
,内容如下
#开放端口 clientPort=2181 #Jetty服务器侦听的端口3.5中新功能 admin.serverPort=8092 #数据存放路径 dataDir=/data/zookeeper/apache-zookeeper-3.6.3/data #集群设置 server.0=master:2182:2183 server.1=worker1:2182:2183 server.2=worker2:2182:2183
在数据存放路径中添加myid文件,要求各个ID不能重复
cd /data/zookeeper/apache-zookeeper-3.6.3/data #master [root@master data]# vim myid 0 #worker1 [root@worker1 data]# vim myid 1 #worker2 [root@worker2 data]# vim myid 2
添加zookeeper用户和用户组
#添加组 groupadd zookeeper #添加用户 useradd -g zookeeper zookeeper #给zookeeper赋予权限 chown -R zookeeper.zookeeper /data/zookeeper #从防火墙中允许服务监听端口2181,2182,2183访问 firewall-cmd --add-port=2181/tcp --permanent firewall-cmd --add-port=2182/tcp --permanent firewall-cmd --add-port=2183/tcp --permanent
添加开机自启动,以及将zookeeper做成服务。
[Unit] Description=Zookeeper After=network.target [Service] Type=forking #启动的用户 User=zookeeper #启动的用户组 Group=zookeeper Environment=JAVA_HOME=/usr/local/jdk1.8.0_281 Environment=/data/zookeeper/apache-zookeeper-3.6.3 ExecStart=/data/zookeeper/apache-zookeeper-3.6.3/bin/zkServer.sh start ExecStop=/data/zookeeper/apache-zookeeper-3.6.3/bin/zkServer.sh stop ExecReload=/data/zookeeper/apache-zookeeper-3.6.3/bin/zkServer.sh restart [Install] WantedBy=multi-user.target
添加可执行权限
chmod +x /usr/lib/systemd/system/zookeeper.service chown -R zookeeper.zookeeper /usr/lib/systemd/system/zookeeper.service
重新加载systemctl服务配置文件
systemctl daemon-reload
zookeeper启动等命令
#启动 systemctl start zookeeper.service #关闭 systemctl stop zookeeper.service #重启 systemctl restart zookeeper.service #开机自启动 systemctl enable zookeeper.service
查看是否启动
jps [root@worker1 bin]# jps 10403 QuorumPeerMain 9428 TaskManagerRunner 10454 Jps
QuorumPeerMain就是zookeeper得服务名称,集群已经启动完成。
查看集群状态
curl -sL master:8092/commands/stat | grep server_state [root@master bin]# curl -sL master:8092/commands/stat | grep server_state "server_state" : "follower", [root@master bin]# curl -sL worker1:8092/commands/stat | grep server_state "server_state" : "leader", [root@master bin]# curl -sL worker2:8092/commands/stat | grep server_state "server_state" : "follower",
这里简单列几个可以测试下,详情可以参考官方文档信息。
/commands/stat #查看节点状态。 /commands/voting_view #可以参与投票的节点。 /commands/leader #查看leader是哪个节点。 /commands/environment #查看节点环境变量的信息。 /commands/system_properties #所有集群的属性