夜间模式暗黑模式
字体
阴影
滤镜
圆角
主题色
Zookeeper3.6.x集群搭建

在3.5.3版本以后,zookeeper支持动态添加节点不需要进行重启,可自动关联配置,动态重新配置功能默认情况下处于禁用状态,必须通过reconfigEnabled配置选项显式打开。这里配置2个版本,一个动态集群,一个静态集群。想要了解动态集群特性推荐查看官网文档:

https://zookeeper.apache.org/doc/r3.6.2/zookeeperReconfig.html

服务器列表

hostnameip
node110.134.11.101
node210.134.11.102
node310.134.11.103
node410.134.11.104
node510.134.11.105

下载Zookeeper并传到每个节点上

#wget下载官网的zookeeper
[root@node1 ~]# wget https://apache.claz.org/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz

#传到每个节点中
[root@node1 ~]# scp -r apache-zookeeper-3.6.2-bin.tar.gz root@node2:`pwd`
[root@node1 ~]# scp -r apache-zookeeper-3.6.2-bin.tar.gz root@node3:`pwd`
[root@node1 ~]# scp -r apache-zookeeper-3.6.2-bin.tar.gz root@node4:`pwd`
[root@node1 ~]# scp -r apache-zookeeper-3.6.2-bin.tar.gz root@node5:`pwd`

解压安装Zookeeper

#创建存放目录(每个节点使用)也可以使用xshell利用撰写栏,一条命令操作全部节点。
mkdir -p /data/zookeeper

#解压文件(每个节点使用)
tar -xf apache-zookeeper-3.6.2-bin.tar.gz -C /data/zookeeper

#修改名称(每个节点使用)存放目录路径根据业务而定,我习惯将zookeeper放在data下。
cd /data/zookeeper
mv apache-zookeeper-3.6.2-bin apache-zookeeper-3.6.2
#进入到zookeeper目录中
cd apache-zookeeper-3.6.2

#创建数据存放目录
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.2/data
#集群设置
server.0=node1:2182:2183
server.1=node2:2182:2183
server.2=node3:2182:2183
server.3=node4:2182:2183
server.4=node5:2182:2183

在数据存放路径中添加myid文件,要求各个ID不能重复

cd /data/zookeeper/apache-zookeeper-3.6.2/data
#node1
[root@node1 data]# vim myid
0

#node2
[root@node2 data]# vim myid
1

#node3
[root@node3 data]# vim myid
2

#node4
[root@node4 data]# vim myid
3

#node5
[root@node5 data]# vim myid
4

添加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做成服务。

创建自启动文件

vim /usr/lib/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper
After=network.target
[Service] 
Type=forking
#启动的用户
User=zookeeper
#启动的用户组
Group=zookeeper
Environment=JAVA_HOME=/usr/java/jdk-11.0.9
Environment=/data/zookeeper/apache-zookeeper-3.6.2
ExecStart=/data/zookeeper/apache-zookeeper-3.6.2/bin/zkServer.sh start
ExecStop=/data/zookeeper/apache-zookeeper-3.6.2/bin/zkServer.sh stop 
ExecReload=/data/zookeeper/apache-zookeeper-3.6.2/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

出现得问题

可能需要关闭SELinux,在进行服务得开启,否则会报一些错误。有SELinux使用基础得可以设置完以后在启动,如果没有用过推荐关闭。详情参考:

重新加载systemctl服务配置文件

systemctl daemon-reload

zookeeper启动

#启动
systemctl start zookeeper.service

#关闭
systemctl stop zookeeper.service

#重启
systemctl restart zookeeper.service

#开机自启动
systemctl enable zookeeper.service

查看是否启动

jps

QuorumPeerMain就是zookeeper得服务名称,集群已经启动完成。

查看集群状态

curl -sL node1:8092/commands/stat | grep server_state

在zookeeper 3.5.0以后,不建议使用四个字母词而是使用AdminServer的方式。

ip:prot/commands 可以查看所有信息的列表。

这里简单列几个可以测试下,详情可以参考上面官方文档信息。

/commands/stat    #查看节点状态。
/commands/voting_view  #可以参与投票的节点。
/commands/leader  #查看leader是哪个节点。
/commands/environment  #查看节点环境变量的信息。
/commands/system_properties  #所有集群的属性
暂无评论

发送评论 编辑评论


				
上一篇
下一篇