Zookeeper 集群部署

Posted 我只想躺平

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper 集群部署相关的知识,希望对你有一定的参考价值。

一、安装前系统简单初始化

1、关闭 SELINUX 、防火墙

[root@zookeeper01 ~]# setenforce 0
[root@zookeeper01 ~]# sed -i s/enforcing/disabled/ /etc/selinux/config    
[root@zookeeper01 ~]# systemctl stop firewalld && systemctl disable firewalld
2、配置主机名、添加解析

[root@zookeeper01 ~]# hostnamectl set-hostname zookeeper01
[root@zookeeper02 ~]# hostnamectl set-hostname zookeeper02
[root@zookeeper03 ~]# hostnamectl set-hostname zookeeper03

[root@zookeeper01 ~]# cat << EOF >> /etc/hosts
> 172.16.1.11  zookeeper01  
> 172.16.1.12  zookeeper02 
> 172.16.1.13  zookeeper03
> EOF

##  同样的操作在 zookeeper02 ,zookeeper03 上执行一次
3、配置时间同步

[root@zookeeper01 ~]# \\cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@zookeeper01 ~]# ntpdate ntp.aliyun.com
[root@zookeeper01 ~]# systemctl start ntpdate && systemctl enable ntpdate

二、安装配置 JDK

1、安装 JDK

[root@zookeeper01 ~]# tar -zxvf jdk-8u131-linux-x64.tar.gz -C /usr/local/
[root@zookeeper01 ~]# cd /usr/local/jdk1.8.0_131/bin

[root@zookeeper01 ~]# ./java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
2、配置环境变量 ( 必须 )

[root@zookeeper01 ~]# cp /etc/profile /etc/profile.bak
[root@zookeeper01 ~]# vim /etc/profile       # 文本末尾追加下面两行
export JAVA_HOME=/usr/local/jdk1.8.0_131
export PATH=.:$PATH:$JAVA_HOME/bin

[root@zookeeper01 ~]# source /etc/profile

[root@zookeeper01 ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

三、安装 Zookeeper 集群

1、安装集群

[root@zookeeper01 ~]# tar -zxvf zookeeper-3.4.14.tar.gz -C /usr/local/
[root@zookeeper01 ~]# mv /usr/local/zookeeper-3.4.14 /usr/local/zookeeper

[root@zookeeper01 ~]# cd /usr/local/zookeeper/conf
[root@zookeeper01 ~]# cp zoo_sample.cfg zoo.cfg

[root@zookeeper01 ~]# vim zoo.cfg
   。。。 。。。
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs

server.1=zookeeper01:2888:3888
server.2=zookeeper02:2888:3888
server.3=zookeeper03:2888:3888

#  配置文件说明:
   dataDir:   数据文件存放路径
   dataLogDir: 日志文件存放路径 
   2181: Zookeeper服务监控的端口
   2888: 集群间数据同步使用的端口
   3888: 集群跳检测选举使用的端口

[root@zookeeper01 ~]# scp -r /usr/local/zookeeper zookeeper02:/usr/local
[root@zookeeper01 ~]# scp -r /usr/local/zookeeper zookeeper03:/usr/local

[root@zookeeper01 ~]# mkdir -p /data/zookeeper/data,logs
[root@zookeeper01 ~]# scp -r /data zookeeper02:/
[root@zookeeper01 ~]# scp -r /data zookeeper03:/

[root@zookeeper01 ~]# echo "1" > /data/zookeeper/data/myid
[root@zookeeper02 ~]# echo "2" > /data/zookeeper/data/myid
[root@zookeeper03 ~]# echo "3" > /data/zookeeper/data/myid
2、 启动集群

[root@zookeeper01 ~]# cd /usr/local/zookeeper/bin/
[root@zookeeper01 ~]# zkServer.sh start

[root@zookeeper02 ~]# cd /usr/local/zookeeper/bin/
[root@zookeeper02 ~]# zkServer.sh start

[root@zookeeper03 ~]# cd /usr/local/zookeeper/bin/
[root@zookeeper03 ~]# zkServer.sh start
3、验证集群启动情况

[root@zookeeper01 conf]# netstat -lntp | grep -E 2181|2888|3888
tcp6       0      0 :::2181                 :::*                    LISTEN      2243/java           
tcp6       0      0 172.16.1.11:3888        :::*                    LISTEN      2243/java

[root@zookeeper02 ~]# netstat -lntp | grep -E 2181|2888|3888
tcp6       0      0 :::2181                 :::*                    LISTEN      1843/java           
tcp6       0      0 172.16.1.12:3888        :::*                    LISTEN      1843/java 

[root@zookeeper03 ~]# netstat -lntp | grep -E 2181|2888|3888
tcp6       0      0 :::2181                 :::*                    LISTEN      2111/java           
tcp6       0      0 172.16.1.13:2888        :::*                    LISTEN      2111/java           
tcp6       0      0 172.16.1.13:3888        :::*                    LISTEN      2111/java
4、查看集群中各节点的角色

[root@zookeeper01 ~]# cd /usr/local/zookeeper/bin/
[root@zookeeper01 bin]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower

[root@zookeeper02 ~]# cd /usr/local/zookeeper/bin/
[root@zookeeper02 bin]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower

[root@zookeeper03 ~]# cd /usr/local/zookeeper/bin/
[root@zookeeper03 bin]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
5、配置环境变量 ( 非必须 )

[root@zookeeper01 ~]# cat << EOF >> /etc/profile
> export ZOOKEEPER_HOME=/usr/local/zookeeper
> export PATH=.:$PATH:$ZOOKEEPER_HOME/bin
> EOF

[root@zookeeper01 ~]# source /etc/profile
[root@zookeeper01 ~]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: follower

##  同样的操作在 zookeeper02 ,zookeeper03 上执行一次  

四、Zookeeper 集群测试

1、任意登录一个节点
#  这里登录节点三 Zookeeper03

[root@zookeeper03 ~]# zkCli.sh -server 172.16.1.13:2181

[zk: 172.16.1.13:2181(CONNECTED) 0] ls /
[zookeeper]

[zk: 172.16.1.13:2181(CONNECTED) 1] create /test "test"
Created /test

[zk: 172.16.1.13:2181(CONNECTED) 2] get /test
test
cZxid = 0xb0000000b
ctime = Sun May 23 09:00:32 EDT 2021
mZxid = 0xb0000000b
mtime = Sun May 23 09:00:32 EDT 2021
pZxid = 0xb0000000b
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0
2、集群其它节点上查看

#  节点 Zookeeper01 

[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper, test]

[zk: localhost:2181(CONNECTED) 2] get /test
test
cZxid = 0xb0000000b
ctime = Sun May 23 09:00:32 EDT 2021
mZxid = 0xb0000000b
mtime = Sun May 23 09:00:32 EDT 2021
pZxid = 0xb0000000b
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0

#  节点 Zookeeper02

[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper, test]

[zk: localhost:2181(CONNECTED) 2] get /test
test
cZxid = 0xb0000000b
ctime = Sun May 23 09:00:32 EDT 2021
mZxid = 0xb0000000b
mtime = Sun May 23 09:00:32 EDT 2021
pZxid = 0xb0000000b
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0

以上是关于Zookeeper 集群部署的主要内容,如果未能解决你的问题,请参考以下文章

Zookeeper集群部署

zookeeper集群+kafka集群 部署

K8s部署Zookeeper集群

ZooKeeper 集群部署

Zookeeper集群部署

zookeeper集群的部署