编写shell脚本一键启动zookeeper集群!!
踩了一个多小时坑终于解决了:
这里分享给大家,更主要的目的是记住这些坑,避免以后重复走!!!
首先,这里采用ssh秘钥方式进行集群主机之间免密登录执行启动命令
这里简单说下原理:
通过ssh去另外一台机器执行命令,直接执行还不行,因为需要环境变量,而ssh登录之后不在同一个进程里面,所以环境变量不共享
可以在登录之后先执行 source /src/profile初始化环境配置,这样环境变量就有了,ssh登录默认不会执行初始化操作,
而从客户端登录会执行初始化一系列命令,包括这个,这个不多说
步骤:
1 配置三台(我用了三台)主机之间ssh可以互相登录, 命令 ssh-keygen 生成秘钥,然后去/root/.ssh/目录下将生成的秘钥
拷贝到其他两个主机上面:
再将秘钥 id_rsa.pub 追加到主机的auth这个文件中,没有可以vim创建一个
注意是在/root/.ssh/目录下面,配置好之后,测试一下 直接用 ssh ip 看是否可以登录,能不用密码直接登录就证明成功了!
然后就是编写shell了,这里直接执行ZkServer.sh start 肯定是不行的,日志会报没有java目录,即没有环境变量,所以可以
在执行之前执行环境变量初始化 source /etc/profile 就行了:
这个是我的!!
然后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后面,否则会报错:
第三: 第一时间看日志,然后查找相关问题,这是解决问题最快的!然后其他常见错误在我之前写的一篇博客中有,这里就不重复写了!
编写shell脚本一键启动zookeeper集群!!的更多相关文章
- shell脚本一键安装redis集群[最终版]
直接上shell了. #!/bin/bash #---------------------------------------------------------------------------- ...
- shell脚本一键安装redis集群
简介: 明天再写,上脚本 #!/bin/bash #-------------------------------------------------------------------------- ...
- 编写shell脚本一键启动 重启 停止springboot项目
#!/bin/bash #设置环境变量 export JAVA_HOME=/usr/local/jdk1.8.0_181 export JRE_HOME=/$JAVA_HOME/jre export ...
- linux环境下编写shell脚本实现启动停止tomcat服务
第一步:以管理员的身份进入控制台,在指定目录下新建一个shell脚本,我这里命名为tomcat.sh 第二步:编写shell脚本 #!/bin/bash tomcat_home=/usr/tomcat ...
- shell 脚本实战笔记(6)--集群环境配置检测
1). 背景: 集群部署的时候, 需要一致的配置和环境设置. 对于虚拟机集群, 可以借助镜像拷贝, 复制和还原集群机器. 对与物理机集群而言, 则不一样, 如果机器一多, 多人去操作和配置, 对于成熟 ...
- shell 脚本实战笔记(3)--集群机器的时间同步设置
背景: 有些分布式服务(比如HBase服务), 依赖于系统时间戳, 如果集群各个节点, 系统时间不一致, 导致服务出现诡异的情况. 解决方案: 那如何同步集群各个节点之间的时间? 采用NTP(Netw ...
- 一键建立zookeeper集群
使用yaml文件的好处,通过service name来进行pod间的服务发现, 集群配置dns. [root@k8s-master ~]# cat zookeeper-cluster.yaml api ...
- shell脚本批量启动zookeeper
脚本名称为zk_run.sh 将下面代码粘贴进zk_run.sh 添加执行权限 chmode +x zk_run.sh 运行脚本 ./zk_run.sh start 如果发现zookeeper没有启动 ...
- Shell脚本完成hadoop的集群安装
虽然整体实现的自动安装,但还是有很多需要完善的地方,比如说: 1. 代码目前只能在root权限下运行,否则会出错,这方面需要加权限判断: 2.另外可以增加几个函数,减少代码冗余: 3.还有一些判断不够 ...
随机推荐
- jmeter函数
1.常用JMeter函数 1)__regexFunction 正则表达式函数可以使用正则表达式(用户提供的)来解析前面的服务器响应(或者是某个变量值).函数会返回一个有模板的字符串,其中携带有可变的值 ...
- VRRP主备备份配置示例—实现网关冗余备份
本示例的基本拓扑结构如图所示. HostA通过Switch 双线连接到RouterA 和RouterB .用户希望实现:正常情况下, 主机以RouterA 为默认网关接入Intemet; 而当Rout ...
- [BZOJ3295][Cqoi2011]动态逆序对 CDQ分治&树套树
3295: [Cqoi2011]动态逆序对 Time Limit: 10 Sec Memory Limit: 128 MB Description 对于序列A,它的逆序对数定义为满足i<j,且 ...
- Linux nc命令用法收集
ps.ubuntu自带的nc是netcat-openbsd版,不带-c/-e参数. pss.在线Markdown编辑器的bug是怎么回事...“#”号依然显示着 ##参数 想要连接到某处: nc [- ...
- 【poj3623】 Best Cow Line, Gold
http://poj.org/problem?id=3623 (题目链接) 题意 给出一个字符串,每次可以取首或尾接到一个新的字符串后面,求构出的字典序最小的新字符串. Solution 首先可以发现 ...
- [学习笔记]平衡树(Splay)——旋转的灵魂舞蹈家
1.简介 首先要知道什么是二叉查找树. 这是一棵二叉树,每个节点最多有一个左儿子,一个右儿子. 它能支持查找功能. 具体来说,每个儿子有一个权值,保证一个节点的左儿子权值小于这个节点,右儿子权值大于这 ...
- lumen 增加视图路径
在 ServiceProvider 里面加上 app('view')->addLocation(module_path('Develop') . '/resources/views');
- 语法:c++对关于空指针0/NULL/nullptr三者的演变
来源: https://blog.csdn.net/u010558281/article/details/77793644 字面意义上的解释: 0:整型常量 NULL:预处理符号 nullptr:空指 ...
- error: Failed to start domain lb error: Failed to activate service 'org.freedesktop.machine1': timed out 报错的解决办法
能正常查看kvm虚拟机列表: virsh list 但在执行virsh start lb启动虚拟机时卡顿了好几秒,然后报以下错误: error: Failed to start domain lber ...
- [Web] Web请求过程之二:DNS 域名解析
一.域名解析过程 1.浏览器检查缓存,域名缓存时间可以通过 TTL 属性来设置. 2.如果浏览器缓存中没有,浏览器会去查找操作系统缓存中是否有这个域名对应的 DNS 解析结果.如果要设置域名对应的 I ...