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 集群部署的主要内容,如果未能解决你的问题,请参考以下文章