1.前置准备
1.1 基础环境前置条件:前置准备参考
节点: node001,node002,node003
1.2 下载Zookeeper-3.6.3 并解压到/opt/src目录
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz -C /opt/src/
cd /opt/src
mv apache-zookeeper-3.6.3-bin zookeeper-3.6.3
1.3 所有节点创建zookeeper的数据及日志存储路径
pssh -h /node.list -i mkdir -p /tmp/zookeeper/data
pssh -h /node.list -i mkdir -p /tmp/zookeeper/log
2.修改配置文件
2.1 修改zoo.cfg
cd zookeeper-3.6.3/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
添加数据及日志路径及zk集群server配置
dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/log
server.1=node001:2182:2183
server.2=node002:2182:2183
server.3=node003:2182:2183
【server】的配置含义说明:
server.A=B:C:D
其中 A 是一个数字,表示这个是第几号服务器;
B 是这个服务器的 ip 地址;
C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;
D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
2.2 数据目录下创建myid文件并分别给赋值
pssh -h /node.list -i touch /tmp/zookeeper/data/myid
赋值1、2、3(与zoo.cfg中zerver._配置保持一致)查看:
pssh -h /node.list -i cat /tmp/zookeeper/data/myid
2.3 配置环境变量
vim /root/.bashrc
#set ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/src/zookeeper-3.6.3
export PATH=$PATH:$ZOOKEEPER_HOME/bin
3.同步到其它节点
pscp -h /node.list /root/.bashrc /root/
pssh -h /node.list source /root/.bashrc
pscp -h /node.list -r /opt/src/zookeeper-3.6.3 /opt/src/
4. 启动停止脚本
启动脚本start-zk-all:
#! /bin/bash
for host in node001 node002 node003
do
ssh $host "/opt/src/zookeeper-3.6.3/bin/zkServer.sh start"
echo "$host zkServer is running"
done
停止脚本stop-zk-all:
#! /bin/bash
for host in node001 node002 node003
do
ssh $host "/opt/src/zookeeper-3.6.3/bin/zkServer.sh stop"
echo "$host zkServer is stoped"
done
启动并查看各节点zk状态,可见node002被选举为leader
start-zk-all
pssh -h /node.list -i zkServer.sh status
5. 客户端连接测试
zkCli.sh -server node001:2181,node002:2181,node003:2181