一.集群规划:
在hosts节点上部署zookeeper:
vim /etc/hosts
192.168.2.101 node1
192.168.2.102 node2
192.168.2.103 node3
二.在node1节点上安装zookeeper并配置环境
1.在安装根目录下新建zkdata文件夹
mkdir zkdata
2.重命名zookeeper-3.4.10/conf目录下zoo_sample.cfg为zoo.cfg
mv zoo_sample.cfg zoo.cfg
3.配置zoo.cfg
vim zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/module/zookeeper-3.4.10/zkdata
dataLogDir=/opt/module/zookeeper-3.4.10/zkdata/logs
clientPort=2181
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
maxClientCnxns=300
4.创建myid文件编写内容
cd /opt/module/zookeeper-3.4.10/zkdata/
touch myid
echo 1 > myid
cat myid
5.zookeeper日志配置
vim log4j.properties(conf文件夹下)
zookeeper.root.logger=INFO,ROLLINGFILE
zookeeper.log.file=zookeeper.log
log4j.appender.ROLLINGFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ROLLINGFILE.MaxFileSize=10MB
log4j.appender.ROLLINGFILE.MaxBackupIndex=10
6.修改zoo.cfg
dataLogDir=/opt/module/zookeeper-3.4.10/zkdata/logs
7.修改zkEnv.sh
vim zkEnv.sh(bin文件夹下)
if [ "x${ZOO_LOG_DIR}" = "x" ]
then
#日志输出路径 不需mkdir zookeeper启动时自动创建
ZOO_LOG_DIR="/opt/module/zookeeper/zkdata/logs"
fi
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
fi
三.分发zookeeper
scp -r /opt/module/zookeeper-3.4.10 root@node2:/opt/module/
scp -r /opt/module/zookeeper-3.4.10 root@node3:/opt/module/
四.修改node2node3节点上的myid
echo 2 > /opt/module/zookeeper-3.4.10/zkdata/myid
cat myid
echo 3 > /opt/module/zookeeper-3.4.10/zkdata/myid
cat myid
五.启动zookeeper
分别在三台服务器上输入命令启动zookeeper
bin/zkServer.sh start
!!!当集群中节点只剩一台或不足半数时会出现
This ZooKeeper instance is not currently serving requests
错误提示