当前,共有三台服务器用来搭建zookeeper集群,分别为:192.168.204.201,192.168.204.202,192.168.204.203
zookeeper安装在/usr/local/lib/zookeeper-3.4.14目录下
在Linux中,我们可以通过ssh命令,来完成对响应服务器的命令操作
ssh 192.168.204.202 mkdir /xxx 即可远程为192.168.204.202服务器创建一个文件夹(如未配置免密登陆,则会提示:Are you sure you want to continue connecting (yes/no)? 输入yes继续连接,再次输入你要连接的服务器密码,即可完成创建操作)
现在,我们来通过ssh命令,完成zookeeper集群的启动
①远程启动192.168.204.202中的zk服务,ssh 192.168.204.202 "/usr/local/lib/zookeeper-3.4.14/bin/zkServer.sh start";
②我们发现并没有启动成功,因为zookeeper启动时需要一些环境变量,特别是JAVA_HOME,ssh会话中是没有JAVA_HOME,所以无法启动。此时关乎到export作用域部分
③最终命令:ssh 192.168.204.202 "source /etc/profile;/usr/local/lib/zookeeper-3.4.14/bin/zkServer.sh start";将profile中的环境变量添加,即可正常启动zk服务
上述操作需要输入密码,接下来进行免密登录设置(在一台主机操作即可,如:192.168.204.201),如已设置过免密登陆,这一步可省略(如你在192.168.204.201操作,则需要配置201到202、203服务器的免密登陆)
步骤:①执行命令:ssh-keygen(先搞一个密钥,然后直接都回车即可)
②执行命令:ssh-copy-id 192.168.204.201
ssh-copy-id 192.168.204.202
ssh-copy-id 192.168.204.203 输入各自服务器的密码,便完成了免密登陆操作的设置
为了方便批量启动/关闭zookeeper集群,我们可以通过Shell脚本来完成这一操作。
分别启动、关闭方式脚本,已废弃,请选择下文一站式 start\stop\restart\status 脚本
#zookeeper集群启动脚本(startzk.sh)
#请注意1.修改服务器 2.修改zookeeper安装路径
#!/bin/bash
#please attention to modify the zkServer.sh address
echo "start zkServer..."
server=("192.168.204.201" "192.168.204.202" "192.168.204.203")
for i in ${server[@]};
do
ssh ${i} "source /etc/profile;/usr/local/lib/zookeeper-3.4.14/bin/zkServer.sh start"
done
#zookeeper集群关闭脚本(stopzk.sh)
#请注意1.修改服务器 2.修改zookeeper安装路径
#!/bin/bash
#please attention to modify the zkServer.sh address
echo "stop zkServer..."
server=("192.168.204.201" "192.168.204.202" "192.168.204.203")
for i in ${server[@]};
do
ssh ${i} "source /etc/profile;/usr/local/lib/zookeeper-3.4.14/bin/zkServer.sh stop"
done
下载地址:
zk启动脚本:https://download.csdn.net/download/lzb348110175/10553092
zk关闭脚本:https://download.csdn.net/download/lzb348110175/10553113
直接通过命令来执行shell脚本,便能够完成对zk服务的批量启动与关闭了
2021/06/15 新增:
上述是两个脚本,现在可以使用一个脚本,来实现 zk 的 start、stop、restart、status 四种查询。
包括: 1.启动zk集群服务 2.关闭zk集群服务 3.查看zk集群状态 4.重启zk集群服务
脚本如下:
vim zookeeper.sh
# zk服务start/stop/restart/status一键式脚本
#!/bin/bash
# zk所在服务器地址(根据个人地址修改)
server=("192.168.204.201" "192.168.204.202" "192.168.204.203")
# zk安装路径地址
zkPath="/opt/module/zookeeper-3.4.14"
# zk启动
function zk_start(){
echo "start zkServer..."
for i in ${server[@]};
do
echo "===============${i}==============="
ssh ${i} "source /etc/profile;${zkPath}/bin/zkServer.sh start"
done
}
# zk关闭
function zk_stop(){
echo "stop zkServer..."
for i in ${server[@]};
do
echo "===============${i}==============="
ssh ${i} "source /etc/profile;${zkPath}/bin/zkServer.sh stop"
done
}
# 查看zk状态
function zk_status(){
echo "zkServer status..."
for i in ${server[@]};
do
echo "===============${i}==============="
ssh ${i} "source /etc/profile;${zkPath}/bin/zkServer.sh status"
done
}
case $1 in
"start")
zk_start
;;
"stop")
zk_stop
;;
"restart")
zk_stop
sleep 2
zk_start
;;
"status")
zk_status
;;
*)
echo Invalid Args!
echo 'Usage: '$(basename $0)' start|stop|restart|status'
;;
esac
赋权限:chmod 777 zookeeper.sh
启动zk集群:zookeeper.sh start
关闭zk集群:zookeeper.sh stop
重启zk集群:zookeeper.sh restart
查看zk集群状态:zookeeper.sh status
博主写作不易,来个关注呗
求关注、求点赞,加个关注不迷路 ヾ(◍°∇°◍)ノ゙
博主不能保证写的所有知识点都正确,但是能保证纯手敲,错误也请指出,望轻喷 Thanks♪(・ω・)ノ