一、 准备工作
服务器
服务器 |
IP |
说明 |
zk01 |
192.168.110.121 |
节点1 |
zk02 |
192.168.110.122 |
节点2 |
zk03 |
192.168.110.123 |
节点3 |
软件版本
项 |
说明 |
Linux Server |
CentOS 7 |
zookeeper |
3.5.9 |
JDK |
1.8-202 |
Linux操作用户:tom
附件地址:待上传
二、 部署jdk
三台服务器均需部署
解压,配置环境变量。
# JDK环境变量设置
vim ~/.bash_profile
export JAVA_HOME=/home/tom/app/jdk1.8.0_202
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source ~/.bash_profile
三、 部署zookeeper
1 zooKeeper基础准备
创建ZooKeeper相关目录
#创建应用目录
mkdir -p /home/tom/app/zookeeper
#创建数据目录
mkdir -p /home/tom/app/zookeeper/data
mkdir -p /home/tom/app/zookeeper/logs
#解压到指定目录
tar -zvxf apache-zookeeper-3.5.9-bin.tar.gz -C /home/tom/app/zookeeper
#改名
mv apache-zookeeper-3.5.9-bin apache-zookeeper-3.5.9
配置环境变量
#修改环境变量文件
vi ~/.bash_profile
#增加以下内容
export ZOOKEEPER_HOME=/home/tom/app/zookeeper/apache-zookeeper-3.5.9
export PATH=$ZOOKEEPER_HOME/bin:$PATH
#使环境变量生效
source ~/.bash_profile
#查看配置结果
echo $ZOOKEEPER_HOME
2 配置ZooKeeper
l zooKeeper基础配置(每个节点都配置)
#进入ZooKeeper配置目录
cd $ZOOKEEPER_HOME/conf
#新建配置文件
vi zoo.cfg
#写入以下内容并保存
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/tom/app/zookeeper/data
dataLogDir=/home/tom/app/zookeeper/logs
clientPort=2181
server.1=192.168.110.115:2888:3888
server.2=192.168.110.116:2888:3888
server.3=192.168.110.117:2888:3888
l 配置节点标识
zk01:
echo "1" > /home/tom/app/zookeeper/data/myid
zk02:
echo "2" > /home/tom/app/zookeeper/data/myid
zk03:
echo "3" > /home/tom/app/zookeeper/data/myid
l 防火墙配置
#开放端口
firewall-cmd --add-port=2181/tcp --permanent
firewall-cmd --add-port=2888/tcp --permanent
firewall-cmd --add-port=3888/tcp --permanent
#重新加载防火墙配置
firewall-cmd --reload
#查看开发端口:
firewall-cmd --list-ports
3 启动ZooKeeper(每个节点都启动)
#启动
sh $ZOOKEEPER_HOME/bin/zkServer.sh start
出现以下字样表示启动成功:
ZooKeeper JMX enabled by default
Using config: /home/tom/app/zookeeper/apache-zookeeper-3.5.9/bin/../conf/zoo.cfg
Starting zookeeper … STARTED
4 查看ZooKeeper运行状态(每个节点都查看)
#使用如下命令查看每个节点的运行状态
sh $ZOOKEEPER_HOME/bin/zkServer.sh status
#状态信息
ZooKeeper JMX enabled by default
Using config: /home/tom/app/zookeeper/apache-zookeeper-3.5.9/bin/../conf/zoo.cfg
Mode: follower
#如果为领导者节点则Mode:leader
5 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.110.115:2888:3888 |