zookeeper单机集群3个节点,端口号分别是2181、2812、2813
1、文件安装到/usr/local/zookeeper下(自己下载tar包或wget安装)
[root@localhost /]# cd /usr/local/
[root@localhost local]# mkdir zookeepersoft
[root@localhost local]# cd zookeepersoft/
[root@localhost zookeepersoft]# ls
zookeeper-3.4.14.tar.gz
[root@localhost local]# mkdir -p /usr/local/zookeeper/218{1,2,3}/{data,datalogs}
[root@localhost zookeeper]# cd /usr/local/zookeeper
[root@localhost zookeeper]# tree -L 3
.
├── 2181
│ ├── data
│ └── datalogs
├── 2182
│ ├── data
│ └── datalogs
└── 2183
├── data
└── datalogs
解压并安装至/usr/local/
[root@localhost zookeepersoft]# tar -zxvf zookeeper-3.4.14.tar.gz -C /usr/local/
[root@localhost zookeepersoft]# cp -r /usr/local/zookeeper-3.4.14/ /usr/local/zookeeper/2181
[root@localhost zookeepersoft]# cp -r /usr/local/zookeeper-3.4.14/ /usr/local/zookeeper/2182
[root@localhost zookeepersoft]# cp -r /usr/local/zookeeper-3.4.14/ /usr/local/zookeeper/2183
最终的目录结构
[root@localhost zookeepersoft]# cd /usr/local/zookeeper
[root@localhost zookeeper]# tree -L 2
.
├── 2181
│ ├── data
│ ├── datalogs
│ └── zookeeper-3.4.14
├── 2182
│ ├── data
│ ├── datalogs
│ └── zookeeper-3.4.14
└── 2183
├── data
├── datalogs
└── zookeeper-3.4.14
2、配置zoo.cfg文件(三个文件夹下都要配置)
节点1
[root@localhost zookeeper]# ll 总用量 0 drwxr-xr-x. 5 root root 58 10月 11 15:51 2181 drwxr-xr-x. 5 root root 58 10月 11 15:51 2182 drwxr-xr-x. 5 root root 58 10月 11 15:51 2183 [root@localhost zookeeper]# cd 2181/zookeeper-3.4.14/conf/ [root@localhost conf]# cp zoo_sample.cfg zoo.cfg [root@localhost conf]# vim zoo.cfgdataDir=/usr/local/zookeeper/2181/data
clientPort=2181
dataLogDir=/usr/local/zookeeper/2181/datalogs(如果没有这个可以加一个,自己选择)
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883
节点2
[root@localhost zookeeper]# ll 总用量 0 drwxr-xr-x. 5 root root 58 10月 11 15:51 2181 drwxr-xr-x. 5 root root 58 10月 11 15:51 2182 drwxr-xr-x. 5 root root 58 10月 11 15:51 2183 [root@localhost zookeeper]# cd 2182/zookeeper-3.4.14/conf/ [root@localhost conf]# cp zoo_sample.cfg zoo.cfg [root@localhost conf]# vim zoo.cfgdataDir=/usr/local/zookeeper/2182/data
clientPort=2182
dataLogDir=/usr/local/zookeeper/2182/datalogs(如果没有这个可以加一个,自己选择)
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883
节点3
[root@localhost zookeeper]# ll 总用量 0 drwxr-xr-x. 5 root root 58 10月 11 15:51 2181 drwxr-xr-x. 5 root root 58 10月 11 15:51 2182 drwxr-xr-x. 5 root root 58 10月 11 15:51 2183 [root@localhost zookeeper]# cd 2183/zookeeper-3.4.14/conf/ [root@localhost conf]# cp zoo_sample.cfg zoo.cfg [root@localhost conf]# vim zoo.cfgdataDir=/usr/local/zookeeper/2183/data
clientPort=2183
dataLogDir=/usr/local/zookeeper/2183/datalogs(如果没有这个可以加一个,自己选择)
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883
clientPort:客户端连接端口
dataDir:数据存放目录
dataLogDir:数据日志存放目录,非运行日志
server.x:集群中的节点(包括自己),x对应myid的数字,2个端口分别用于集群选举通讯
配置myid
每个节点必须有myid配置文件,记录节点的唯一标识,必须放在dataDir文件夹下
id值必须与上面配置的server.x中的x对应
[root@localhost conf]# touch /usr/local/zookeeper/2181/data/myid && echo "1" > /usr/local/zookeeper/2181/data/myid
[root@localhost conf]# touch /usr/local/zookeeper/2182/data/myid && echo "2" > /usr/local/zookeeper/2182/data/myid
[root@localhost conf]# touch /usr/local/zookeeper/2183/data/myid && echo "3" > /usr/local/zookeeper/2183/data/myid
[root@localhost data]# more /usr/local/zookeeper/218*/data/myid
::::::::::::::
/usr/local/zookeeper/2181/data/myid
::::::::::::::
1
::::::::::::::
/usr/local/zookeeper/2182/data/myid
::::::::::::::
2
::::::::::::::
/usr/local/zookeeper/2183/data/myid
::::::::::::::
3
配置防火墙
firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --zone=public --add-port=2182/tcp --permanent
firewall-cmd --zone=public --add-port=2183/tcp --permanent
firewall-cmd --zone=public --add-port=2881/tcp --permanent
firewall-cmd --zone=public --add-port=2882/tcp --permanent
firewall-cmd --zone=public --add-port=2883/tcp --permanent
firewall-cmd --zone=public --add-port=3881/tcp --permanent
firewall-cmd --zone=public --add-port=3882/tcp --permanent
firewall-cmd --zone=public --add-port=3883/tcp --permanent
[root@localhost data]# systemctl restart firewalld
[root@localhost data]# firewall-cmd --list-ports
8123/tcp 8848/tcp 4682/tcp 4488/tcp 2181/tcp 2182/tcp 2183/tcp 2881/tcp 2882/tcp 2883/tcp 3881/tcp 3882/tcp 3883/tcp
启动每个节点
cd /usr/local/zookeeper/2181 && /usr/local/zookeeper/2181/zookeeper-3.4.14/bin/zkServer.sh start
cd /usr/local/zookeeper/2182 && /usr/local/zookeeper/2182/zookeeper-3.4.14/bin/zkServer.sh start
cd /usr/local/zookeeper/2183 && /usr/local/zookeeper/2183/zookeeper-3.4.14/bin/zkServer.sh start
查看节点状态
/usr/local/zookeeper/2181/zookeeper-3.4.14/bin/zkServer.sh status
/usr/local/zookeeper/2182/zookeeper-3.4.14/bin/zkServer.sh status
/usr/local/zookeeper/2183/zookeeper-3.4.14/bin/zkServer.sh status
[root@localhost 2183]# /usr/local/zookeeper/2181/zookeeper-3.4.14/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/2181/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: leader
[root@localhost 2183]# /usr/local/zookeeper/2182/zookeeper-3.4.14/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/2182/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: follower
[root@localhost 2183]# /usr/local/zookeeper/2183/zookeeper-3.4.14/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/2183/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: follower