-
- 准备三台Linux服务器,需要注意的是 集群上每个ZK实例都需要互连,必须打开对应的端开口。
-
从 (https://zookeeper.apache.org/releases.html) 下载最新稳定版本(zookeeper-3.4.10.tar.gz)
-
上传至
/root
目录 -
运行
mkdir -p /var/zookeeper/data
创建ZK的数据目录 -
运行
mkdir -p /var/zookeeper/logs
创建ZK的日志目录 -
运行
tar -zxf zookeeper-3.4.10.tar.gz -C /usr/local
解压缩ZK -
运行
vim /etc/profile
,定位到末尾,按insert进入编辑模式,添加或修改以下两行后保存export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.10 export PATH=.:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$PATH
-
运行
source /etc/profile
刷新环境变量 -
运行
cd /usr/local/zookeeper-3.4.10
进入ZK主目录 -
运行
cp ./conf/zoo_sample.cfg ./conf/zoo.cfg && vim ./conf/zoo.cfg
复制并用vim修改为以下内容clientPort=2181 tickTime=2000 initLimit=10 syncLimit=5 dataDir=/var/zookeeper/data dataLogDir=/var/zookeeper/logs server.1=192.168.253.30:2888:3888 server.2=192.168.253.31:2888:3888 server.3=192.168.253.32:2888:3888
-
在每台机上运行
echo 1 > /var/zookeeper/data/myid
创建ZK的标识文件(这里的1对应zoo.cfg的server列表中的数字) -
运行
./bin/zkServer.sh start
启动ZK -
运行
./bin/zkServer.sh status
查看运行状态 -
运行
./bin/zkServer.sh stop
关闭Leader,可以看到另外两台其中一台会自动选举变成Leader
备注:配置文件中的 server.1=192.168.253.30:2888:3888,1表示zookeeper示例的id,对应数据目录下的myid文件, 绿色2888是集群中实例互相访问的端口,红色3888是Leader选举用的端口(在某算法下是可省略的,具体参考官方文档)