一、概述
Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。
二、本地模式安装
1、下载Zookeeper
2、解压安装包
tar -zxvf /opt/software/apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
3、改名
mv /opt/module/apache-zookeeper-3.5.7-bin /opt/module/zookeeper
4、配置
(1)将/opt/module/zookeeper/conf 这个路径下的 zoo_sample.cfg 修改为 zoo.cfg
mv /opt/module/zookeeper/conf/zoo_sample.cfg /opt/module/zookeeper/conf/zoo.cfg
(2)打开 zoo.cfg 文件,修改 dataDir 路径:
修改如下内容: dataDir=/opt/module/zookeeper/zkData
(3)在/opt/module/zookeepe/这个目录上创建 zkData 文件夹
mkdir /opt/module/zookeeper/zkData
三、集群安装
1、集群规划
在 hadoop102、hadoop103 和 hadoop104 三个节点上都部署 Zookeeper。
思考:如果是 10 台服务器,需要部署多少台 Zookeeper?
2、安装配置
1)在单机安装的基础上,在zkData下创建一个 myid 的文件
vim /opt/module/zookeeper/zkData/myid
2)在文件中添加与 server 对应的编号
在hadoop102的myid中写入2(注意:上下不要有空行,左右不要有空格)
myid:102->2,103->3,104->4(类似于身份证号)
3)拷贝配置好的 zookeeper 到其他机器上并将myid修改为3、4
scp -r /opt/module/zookeeper wolf@hadoop103:/opt/module
scp -r /opt/module/zookeeper wolf@hadoop104:/opt/module
vim /opt/module/zookeeper/zkData/myid
4)在zoo.cfg中加入以下内容
#######################cluster##########################
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888
5)分发zoo.cfg文件
scp -r /opt/module/zookeeper/conf wolf@hadoop103:/opt/module/zookeeper
scp -r /opt/module/zookeeper/conf wolf@hadoop104:/opt/module/zookeeper
四、启动集群
(1)在三台机器上分别启动 Zookeeper
/opt/module/zookeeper/bin/zkServer.sh start
(2)查看进程是否启动
jps
(3)查看状态
/opt/module/zookeeper/bin/zkServer.sh status
(4)启动客户端
/opt/module/zookeeper/bin/zkCli.sh
(5)退出客户端
quit
(6)停止 Zookeeper
/opt/module/zookeeper/bin/zkServer.sh stop
五、Zookeeper集群启动停止脚本
(1)在 hadoop102 的/home/用户名/bin 目录下创建脚本
vim zk.sh
编写以下内容
#!/bin/bash
case $1 in
"start"){
for i in hadoop102 hadoop103 hadoop104
do
echo ---------- zookeeper $i 启动 ------------
ssh $i "/opt/module/zookeeper/bin/zkServer.sh
start"
done
};;
"stop"){
for i in hadoop102 hadoop103 hadoop104
do
echo ---------- zookeeper $i 停止 ------------
ssh $i "/opt/module/zookeeper/bin/zkServer.sh
stop"
done
};;
"status"){
for i in hadoop102 hadoop103 hadoop104
do
echo ---------- zookeeper $i 状态 ------------
ssh $i "/opt/module/zookeepe/bin/zkServer.sh
status"
done
};;
esac
(2)增加脚本执行权限
chmod u+x zk.sh
(3)Zookeeper 集群脚本
zk.sh start
zk.sh stop