版权声明:本文为博主原创文章,未经博主允许不得转载!!
欢迎访问:https://blog.csdn.net/qq_21439395/article/details/80870973
交流QQ: 824203453
基于zookeeper 3.4.6版本
因为zookeeper本身没有批量启动脚本,所以,每次都需要一台机器一台机器的启动。非常麻烦。
这里提供一个zookeeper的集群批量启动脚本。
#!/bin/bash
ZOOKEEPER_HOME=/root/apps/zookeeper-3.4.6
if [ $ZOOKEEPER_HOME != "" ]; then
ZOOCFG=$ZOOKEEPER_HOME/conf/zoo.cfg
SLAVES=$(cat "$ZOOCFG" | sed '/^server/!d;s/^.*=//;s/:.*$//g;/^$/d')
for s in $SLAVES
do
echo "INFO:starting zookeeper on ${s}"
ssh $s "source /etc/profile;$ZOOKEEPER_HOME/bin/zkServer.sh start"
if [ $? != 0 ];
then
echo "Can not starting zookeeper server on host $s}"
exit 1
fi
done
fi
思路:
设置zookeeper安装目录
获取安装目录下的zoo.cfg配置文件(该文件中有所有的zookeeper节点)
获取该配置文件中的所有的zookeeper节点。
循环遍历,利用ssh命令启动每台机器上的zookeeper。
注意事项:
1,本次测试的3台机器主机名分别是hdp-01,hdp-02和 hdp-03。 然后hdp-01到hdp-02和hdp-01到hdp-03的单向免密登录是通的。否则就需要先进行免密登录配置。(因为没有全部配通免密登录,所有启动命令只能在hdp-01上执行即可,如果想在任意一台机器上都能执行,那么就需要配置所有的免密登录)
2,在ssh 远程启动脚本中,先执行了 source /etc/profile,重新加载了系统环境变量。目的是为了把jdk的命令加载到当前系统环境中,否则报错。
报错如下:
一键停止,只需要把start命令改成stop命令即可,获取通过参数穿的具体的操作也是ok的。
版权声明:本文为博主原创文章,未经博主允许不得转载!!
欢迎访问:https://blog.csdn.net/qq_21439395/article/details/80870973
交流QQ: 824203453