前置条件
已有服务器并安装好jdk1.8
192.168.18.7
192.168.18.22
192.168.18.23
添加host映射(可省略)
vim /etc/hosts
192.168.18.7 dev7
192.168.18.22 dev22
192.168.18.23 dev23
下载zookeeper安装包并解压
# 下载
wget "http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz"
#解压到 /usr/local/zookeeper
[root@localhost zookeeper]# ls
zookeeper-3.4.10 zookeeper-3.4.10.tar.gz
配置zoo.cfg文件
[root@localhost conf]# pwd
/usr/local/zookeeper/zookeeper-3.4.10/conf
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
#创建data和logs目录
[root@localhost data]# mkdir -p /data/zookeeper/data /data/zookeeper/logs
#配置zoo.cfg
vim /usr/local/zookeeper/zookeeper-3.4.10/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
clientPort=2181
maxClientCnxns=60
autopurge.snapRetainCount=3
autopurge.purgeInterval=24
dataLogDir=/data/zookeeper/logs
server.1=192.168.18.7:2888:3888
server.2=192.168.18.22:2888:3888
server.3=192.168.18.23:2888:3888
创建myid节点文件
以server.1对应的序号创建myid文件
如:
echo 1 > /data/zookeeper/data/myid
server.1对应18.7服务器,在18.7服务器上创建的myid内容为1
server.2对应18.7服务器,在18.22服务器上创建的myid内容为2
server.3对应18.7服务器,在18.23服务器上创建的myid内容为3
启动集群
cd /usr/local/zookeeper/zookeeper-3.4.10/bin/
./zkServer.sh start
指定使用的jdk版本
vim zkServer.sh
# 在未注释的最上面添加
export JAVA_HOME=/usr/local/java/jdk1.8.0_131
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
查看集群状态
# 主
[root@localhost bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: leader
# 从
[root@localhost bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower
添加自动启动
vim /etc/rc.local 添加:
/usr/local/zookeeper/zookeeper-3.4.10/bin/zkServer.sh start