需求:老大要求在华为鲲鹏920云主机上部署zookeeper集群




文章目录


0、准备工作



版本选择
​apache-zookeeper-3.6.3​



下载zookeeper



wget https://archive.apache.org/dist/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
  • 集群部署(3节点)
hadoop41
hadoop42
hadoop43
  • 一定要先关墙(3台节点都要操作),否则启动ZK集群会报错
    ​解决ZooKeeper集群节点状态报错Client address: localhost. Error contacting service. It is probably not running

关墙

systemctl stop firewalld

禁用

systemctl disable firewalld

1、开始部署

​cd /datafs/​



解压
​tar -zxf apache-zookeeper-3.6.3-bin.tar.gz​



配置
​mv apache-zookeeper-3.6.3-bin zookeeper​



创建数据、日志目录
​mkdir /datafs/zookeeper/{data,logs}​



创建myid文件,41节点配置为0,不要多加空格
​vim /datafs/zookeeper/data/myid​​ 或者按照下面这种方式去写
​echo '0' > /datafs/zookeeper/data/myid​



备份配置文件
​cp zoo_sample.cfg zoo.cfg​



编辑配置文件
​vim zoo.cfg​



tickTime=2000
initLimit=10
syncLimit=5

dataDir=/datafs/zookeeper/data
dataLogDir=/datafs/zookeeper/logs

clientPort=2181
server.0=hadoop41:2888:3888
server.1=hadoop42:2888:3888
server.2=hadoop43:2888:3888
  • 自动分发(建立在3节点互相免密的基础上(xsync脚本依赖之前这篇 blog ))

​~/xsync /datafs/zookeeper hadoop42:/datafs/​

​~/xsync /datafs/zookeeper hadoop43:/datafs/​

  • 分发后,修改另外两台配置文件 ​​/datafs/zookeeper/data/myid​

42修改为 1

43修改为 2


2、启动集群



3台都启动
​/datafs/zookeeper/bin/ start​



3台分别查看节点状态
​/datafs/zookeeper/bin/ status​



然后jps查看zk进程

3、测试集群

  • 单台机器打开zk客户端
    ​​​/datafs/zookeeper/bin/​

4、安利启动、关闭zk集群脚本

使用脚本一键启动、一键关闭,就是那么easy

​vim ​

#!/bin/bash

case $1 in
"start"){
for i in hadoop41 hadoop42 hadoop43
do
echo ---------- zookeeper $i 启动 ------------
ssh $i "/datafs/zookeeper/bin/ start"
done
};;
"stop"){
for i in hadoop41 hadoop42 hadoop43
do
echo ---------- zookeeper $i 停止 ------------
ssh $i "/datafs/zookeeper/bin/ stop"
done
};;
"status"){
for i in hadoop102 hadoop103 hadoop104
do
echo ---------- zookeeper $i 状态 ------------
ssh $i "/datafs/zookeeper/bin/ status"
done
};;
esac

给脚本授权(可执行权限)

​chmod u+x ./​

启动

​./ start​

关闭

​./ stop​

查看状态

​./ status​