linux脚本一键启动zk,编写shell脚本一键启动zookeeper集群!!

踩了一个多小时坑终于解决了:

0ebea2ebea2037d3fb1687d01c6e500c.png

这里分享给大家,更主要的目的是记住这些坑,避免以后重复走!!!

首先,这里采用ssh秘钥方式进行集群主机之间免密登录执行启动命令

这里简单说下原理:

通过ssh去另外一台机器执行命令,直接执行还不行,因为需要环境变量,而ssh登录之后不在同一个进程里面,所以环境变量不共享

可以在登录之后先执行 source /src/profile初始化环境配置,这样环境变量就有了,ssh登录默认不会执行初始化操作,

而从客户端登录会执行初始化一系列命令,包括这个,这个不多说

步骤:

1 配置三台(我用了三台)主机之间ssh可以互相登录,  命令 ssh-keygen 生成秘钥,然后去/root/.ssh/目录下将生成的秘钥

拷贝到其他两个主机上面:

2cc5df1d2d220f71717ce85caf1ce2f1.png

再将秘钥 id_rsa.pub 追加到主机的auth这个文件中,没有可以vim创建一个

a2d78e38def88120bb95d6ed9b7f608a.png

注意是在/root/.ssh/目录下面,配置好之后,测试一下 直接用 ssh ip 看是否可以登录,能不用密码直接登录就证明成功了!

然后就是编写shell了,这里直接执行ZkServer.sh start 肯定是不行的,日志会报没有java目录,即没有环境变量,所以可以

在执行之前执行环境变量初始化 source /etc/profile 就行了:

4a8dab09847af1f1a7c97b34c5793cd4.png

这个是我的!!

然后chomd 755 文件就可以直接执行启动了!

如果不成功,就得看日志了,因为是ssh启动,所以日志在~目录中,即 /root目录,这里我总结了几点坑:

坑:重点来了

第一: 确保集群之间通信的端口开放,默认是2888,3888都必须开放,可以使用firewall-cmd --zone=public --add-port=2888/tcp --permanent 添加,然后重新加载

firewall使用教程:https://www.cnblogs.com/moxiaoan/p/5683743.html

第二: java安装时候必须在环境变量配置JAVA_HOME,不能直接添加在$PATH后面,否则会报错:

729763fc234bbe2277b100220020ea41.png

第三: 第一时间看日志,然后查找相关问题,这是解决问题最快的!然后其他常见错误在我之前写的一篇博客中有,这里就不重复写了!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值