部署zookeeper集群
部署zookeeper集群,以被kafka集群使用。
软件版本
JDK 1.8 zookeeper 3.4.14
安装openJDK
yum -y install java-1.8.0-openjdk-devel.x86_64
java -version
安装zookeeper 3.4.14
基础准备
修改主机名
hostnamectl set-hostname zk02
hostnamectl set-hostname zk03
#添加hosts
vi /etc/hosts
10.1.241.201 redis-node3
10.1.241.202 zk02
10.1.241.203 zk03
-
zookeeper下载
cd /data wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz -
创建ZooKeeper相关目录
#创建应用目录 mkdir /usr/zookeeper #创建数据目录 mkdir -p /data/zookeeper/data mkdir -p /data/zookeeper/logs -
解压到指定目录
tar -zvxf zookeeper-3.4.14.tar.gz -C /usr/zookeeper -
配置环境变量
#修改环境变量文件 vi /etc/profile #增加以下内容 export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.14 export PATH=$ZOOKEEPER_HOME/bin:$PATH #使环境变量生效 source /etc/profile #查看配置结果 echo $ZOOKEEPER_HOME
配置ZooKeeper
-
ZooKeeper基础配置
#进入ZooKeeper配置目录 cd $ZOOKEEPER_HOME/conf #新建配置文件 vi zoo.cfg #写入以下内容并保存 tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data/zookeeper/data dataLogDir=/data/zookeeper/logs clientPort=2181 server.1=10.1.241.201:2888:3888 server.2=10.1.241.202:2888:3888 server.3=10.1.241.203:2888:3888 -
配置节点标识 每台机器的myid里面的值对应server.后面的数字x。
redis-node3:
echo "1" > /data/zookeeper/data/myid
zk02:
echo "2" > /data/zookeeper/data/myid
zk03:
echo "3" > /data/zookeeper/data/myid
-
防火墙配置
sudo /sbin/iptables -I INPUT -p tcp --dport 2888 -j ACCEPT sudo /sbin/iptables -I INPUT -p tcp --dport 3888 -j ACCEPT sudo /sbin/iptables -I INPUT -p tcp --dport 2181 -j ACCEPT #保存配置 sudo service iptables save sudo service iptables restart #查看防火墙状态 sudo /sbin/iptables -L -n
启动zookeeper
#进入ZooKeeper bin目录
cd $ZOOKEEPER_HOME/bin
#启动
sh zkServer.sh start
#查看节点状态
sh $ZOOKEEPER_HOME/bin/zkServer.sh status
#状态信息
ZooKeeper JMX enabled by default
Using config: /usr/zookeeper/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: leader
#如果为从几=节点则为follower
客户端连接测试
-
随机选其中一个节点作为客户端连接其他节点即可
#指定Server进行连接 sh $ZOOKEEPER_HOME/bin/zkCli.sh -server 10.1.241.202:2181 #正常连接后显示 [zk: 10.1.241.201:2181(CONNECTED) 0] #查看ZooKeeper根 [zk: 10.1.241.201:2181(CONNECTED) 0] ls / [zookeeper]
ZooKeeper常用配置项说明
| 配置项 | 名称 | ken.io 的说明 |
|---|---|---|
| tickTime | CS通信心跳间隔 | 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每间隔 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。 |
| initLimit | LF初始通信时限 | 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数 |
| syncLimit | LF同步通信时限 | 集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数 |
| dataDir | 数据文件目录 | Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里 |
| dataLogDir | 日志文件目录 | Zookeeper保存日志文件的目录 |
| clientPort | 客户端连接端口 | 客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求 |
| server.N | 服务器名称与地址 | 从N开始依次为:服务编号、服务地址、LF通信端口、选举端口;例如:server.1=192.168.88.11:2888:3888 |
2021-04-16