安装配置ZooKeeper
在node1节点上,进入/opt/software/目录,没下载过的需要自行前往官网下载。
[root@node1 ~]# cd /opt/software/
在node1节点安装ZooKeeper,解压ZooKeeper安装包:
[root@node1 software]# tar -zxvf /opt/software/zookeeper-3.4.13.tar.gz -C /opt/module
配置用户环境变量
- 使用【vi /etc/profile】打开配置文件,增加如下内容:
export ZK_HOME=/opt/module/zookeeper-3.4.13
export PATH=$PATH:$ZK_HOME/bin
- 使修改的环境变量生效
[root@node1 software]# source /etc/profile
- 将/etc/profile拷贝到其它所有机器上
[root@node1 software]# scp -rq /etc/profile node2:/etc/
[root@node1 software]# scp -rq /etc/profile node3:/etc/
- 并在node2、node3执行【source /etc/profile】使环境变量生效
配置ZooKeeper
- 在node1节点上,修改ZooKeeper的配置文件
[root@node1 software]# cd $ZK_HOME/conf/
[root@node1 conf]# cp zoo_sample.cfg zoo.cfg
[root@node1 conf]# vi zoo.cfg
- 将zoo.cfg文件修改成如下内容:
# 客户端心跳时间(毫秒)
tickTime=2000
# 允许心跳间隔的最大时间
initLimit=10
# 同步时限
syncLimit=5
# 数据存储目录
dataDir=/opt/module/zookeeper-3.4.13/data
# 数据日志存储目录
dataLogDir=/opt/module/zookeeper-3.4.13/data/log
# 端口号
clientPort=2181
# 集群节点和服务端口配置
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
# 以下为优化配置
# 服务器最大连接数,默认为10,改为0表示无限制
maxClientCnxns=0
# 快照数
autopurge.snapRetainCount=3
# 快照清理时间,默认为0
autopurge.purgeInterval=1
- 创建ZooKeeper的数据存储目录和日志存储目录
[root@node1 conf]# cd ../
[root@node1 zookeeper-3.4.13]# mkdir -p /opt/module/zookeeper-3.4.13/data
[root@node1 zookeeper-3.4.13]# mkdir -p /opt/module/zookeeper-3.4.13/data/log
- 在data目录中创建一个文件myid,输入内容为1
[root@node1 zookeeper-3.4.13]# echo "1" > data/myid
- 修改ZooKeeper的日志输出路径
[root@node1 zookeeper-3.4.13]# vi bin/zkEnv.sh
- 修改内容如下:
if [ "x${ZOO_LOG_DIR}" = "x" ]
then
ZOO_LOG_DIR="$ZK_HOME/logs"
fi
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
fi
- 修改ZooKeeper的日志配置文件
[root@node1 zookeeper-3.4.13]# vi conf/log4j.properties
- 修改内容如下:
zookeeper.root.logger=INFO,ROLLINGFILE
- 创建日志目录
[root@node1 zookeeper-3.4.13]# mkdir /opt/module/zookeeper-3.4.13/logs
- 在node1中将zookeeper目录复制到其它节点
[root@node1 zookeeper-3.4.13]# scp -rq /opt/module/zookeeper-3.4.13 node2:/opt/module
[root@node1 zookeeper-3.4.13]# scp -rq /opt/module/zookeeper-3.4.13 node3:/opt/module
- 在node2中修改data目录中的myid文件
[root@node2 ~]# rm -rf /opt/module/zookeeper-3.4.13/data/myid
[root@node2 ~]# echo "2" > /opt/module/zookeeper-3.4.13/data/myid
- 在node3中修改data目录中的myid文件
[root@node3 ~]# rm -rf /opt/module/zookeeper-3.4.13/data/myid
[root@node3 ~]# echo "3" > /opt/module/zookeeper-3.4.13/data/myid
Zookeeper启动,测试
- 分别在node1、node2、node3节点上启动ZooKeeper服务
[root@node1 ~]# zkServer.sh start
[root@node2 ~]# zkServer.sh start
[root@node3 ~]# zkServer.sh start
- 分别在node1、node2、node3节点上查看状态
[root@node1 ~]# zkServer.sh status
[root@node2 ~]# zkServer.sh status
[root@node3 ~]# zkServer.sh status
如果要关闭ZooKeeper服务,可以分别在三个节点上使用关闭命令。(zkServer.sh stop)