集群安装
集群规划:在那些机器上部署集群(本机 | 3台分布式 | 5、11台分布式等 )一般学习集群取3台
安装:
- 解压到
/opt/moudle
目录
tar -zxvf apache-zookeeper-3.5.7- bin.tar.gz -C /opt/moudle/
## 重命名方便使用
mv apache-zookeeper-3.5.7- bin.tar.gz zookeeper-3.5.7
- 配置服务器编号
2.1. 在/opt/moudle/zookeeper-3.5.7/这个目录下创建 zkData
mkdir zkData
2.2.在/opt/moudle/zookeeper-3.5.7/zkData 目录下创建一个 myid 的文件
vim myid
3.拷贝配置好的 zookeeper 到其他机器上 xsync
4. 配置zoo.cfg文件
- 重命名/opt/moudle/zookeeper-3.5.7/conf 这个目录下的 zoo_sample.cfg 为 zoo.cfg
mv zoo_sample.cfg zoo.cfg
- 修改
zoo.cfg
vim zoo.cfg
### 修改存储路劲配置
dataDir=/opt/module/zookeeper-3.5.7/zkData
###增加以下
#######################cluster##########################
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888
- 配置参数解读
server.A=B:C:D
A 是一个数字,表示这个是第几号服务器
集群模式下配置一个文件myid,这个文件在 dataDir 目录下,这个文件里面有一个数据就是 A 的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是哪个 server
B:服务器ip地址
C:Follower与leader服务器交换信息端口
D 是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口
- 同步zoo.cfg 配置文件
xsync zoo.cfg - 集群操作
分别启动Zookeeper 三台机器bin/zkServer.sh start
- ZK 集群启动停止脚本
- 在hadoop102 的/home/atguigu/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-3.5.7/bin/zkServer.sh start"
done
};;
"stop"){
for i in hadoop102 hadoop103 hadoop104
do
echo ---------- zookeeper $i 停止 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
done
};;
"status"){
for i in hadoop102 hadoop103 hadoop104
do
echo ---------- zookeeper $i 状态 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
done
};;
esac
- 增加脚本权限
chmod u+x zk.sh
- 启动脚本
zk.sh start
- 停止脚本
zk.sh stop
Zookeeper常用命令
一、zk服务命令
- 启动ZK服务: bin/zkServer.sh start
- 查看ZK服务状态: bin/zkServer.sh status
- 停止ZK服务: bin/zkServer.sh stop
- 重启ZK服务: bin/zkServer.sh restart
- 连接服务器: zkCli.sh -server 127.0.0.1:2181
二、连接zk Linux环境下:
eg、zkCli.sh -server 127.0.0.1:2181
连接成功后,系统会输出 ZooKeeper 的相关环境以及配置信息
命令行工具的一些常用操作命令如下:
1.ls -- 查看某个目录包含的所有文件,例如:
ls /
2.ls2 -- 查看某个目录包含的所有文件,与ls不同的是它查看到time、version等信息,例如:
ls2 /
3.create -- 创建znode,并设置初始内容,例如:
create /test "test"
4.get -- 获取znode的数据,如下:
get /test
5.set -- 修改znode内容,例如:
set /test "ricky"
6.delete -- 删除znode,例如:
delete /test
7.quit -- 退出客户端
8.help -- 帮助命令