环境:
VMware15.5Pro【安装传送门】
CentOS6.9【安装传送门】
JKD1.8【安装传送门】
zookeeper-3.4.5-cdh5.14.0
前言:
Zookeeper集群搭建指的是ZooKeeper分布式模式安装。通常由2n+1台servers组成。这是因为为了保证Leader选举(基于Paxos算法的实现)能过得到多数的支持,所以ZooKeeper集群的数量一般为奇数。
Zookeeper运行需要java环境,所以需要提前安装jdk。
对于安装leader+follower模式的集群,大致过程如下:
- 配置主机名称到IP地址映射配置
- 修改ZooKeeper配置文件
- 远程复制分发安装文件
- 设置myid
- 所有节点配置全局环境变量
- 启动ZooKeeper集群
安装步骤:
一、上传安装包
cd /export/soft/
rz
如果没有rz命令请查看你是否安装插件【传送门】
二、解压安装包
tar -zxvf zookeeper-3.4.5-cdh5.14.0.tar.gz -C ../servers/
cd ../servers/zookeeper-3.4.5-cdh5.14.0
三、修改配置文件
进入到conf目录 复制zoo_sample.cfg 粘贴为zoo.cfg并编辑
进入到conf
cd /export/servers/zookeeper-3.4.5-cdh5.14.0/conf
复制文件
cp zoo_sample.cfg zoo.cfg
编辑zoo.cfg配置文件
vim zoo.cfg
dataDir=/export/servers/zookeeper-3.4.5-cdh5.14.0/zkdata
添加内容:
# (心跳端口、选举端口)
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888
四、创建出zoo.cfg配置文件中配置的 dataDir 路径
mkdir -p /export/servers/zookeeper-3.4.5-cdh5.14.0/zkdata
五、在zkdata内创建一个myid文件并写入值为:1
cd /export/servers/zookeeper-3.4.5-cdh5.14.0/zkdata
echo 1 > myid
myid存储的是第几号server
六、安装包的分发构成集群
cd /export/servers
scp -r zookeeper-3.4.5-cdh5.14.0/ node02:$PWD
scp -r zookeeper-3.4.5-cdh5.14.0/ node03:$PWD
一定要注意 $PWD代表的是当前路径,你从那个位置发起的scp远程拷贝就会复制到接收节点的对应发起位置
(例如你从tmp发起的远程拷贝 不管数据在那个路径 都会拷贝到 接收节点的 tmp路径 。代表当前发起路径。)
七:修改另外两台节点的myid
八、三台节点配置全局环境变量
cd /etc/profile.d/
vim zookeeper.sh
export ZOOKEEPER_HOME=/export/servers/zookeeper-3.4.5-cdh5.14.0
export PATH=$PATH:$ZOOKEEPER_HOME/bin
九、zookeeper.sh 分发到另外两个节点
cd /etc/profile.d/
scp zookeeper.sh node02:$PWD
scp zookeeper.sh node03:$PWD
十、source /etc/profile 让配置的zookeeper.sh 生效(三台节点都要source)
source /etc/profile
十一、启动zk分布式集群 zk比较特殊启动/关闭时只能单一节点一个一个的启动/关闭
zkServer.sh start
zk集群停止
zkServer.sh stop
十二:集群验证
zookeeper分布式集群配置完成。
ZK集群一键启动脚本
for host in node01 node02 node03
do
ssh $host "source /etc/profile;nohup /export/servers/zookeeper-3.4.5-cdh5.14.0/bin/zkServer.sh start >/dev/null 2>&1 &"
echo "$host zk is running"
done
ZK集群一键关闭脚本
for host in node01 node02 node03
do
ssh $host "source /etc/profile;jps |grep QuorumPeerMain |cut -c 1-4 |xargs kill -s 9"
echo "$host zk is stopping"
done