一、无法启动
zookeeper之前可以很好的运行,由于zk集群不是正常的关闭,比如 强制Linux关闭,直接执行kill 命令zk的进程等原因导致zookeeper启动不了
启动命令后,查看状态,会发现没有启动
[root@node02 bin]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Error contacting service. It is probably not running.
修改zoo.cfg中clientPort后可以启动
写脚本启动集群的zookeeper
#! /bin/bash case $1 in "start") for host in node01 node02 node03 do ssh $host "/bigdata/zookeeper-3.4.10/bin/zkServer.sh start"; done ;; "stop") for host in node01 node02 node03 do ssh $host "/bigdata/zookeeper-3.4.10/bin/zkServer.sh stop"; done ;; "status") for host in node01 node02 node03 do ssh $host "/bigdata/zookeeper-3.4.10/bin/zkServer.sh status"; done ;; esac
发现本地可以启动和查看状态,但是脚本不行,原因是SSH命令出现了问题
shell脚本执行的过程中,登录shell 和非登录shell 读取的环境配置文件不同。
登录shell 会读取 /etc/profile, ~/.bash_profile,~/.bash_login ,~/.profile等文件,而非登录shell 读取的脚本是 /etc/bashrc 和 ~/.bashrc ,像java,path 这些环境变量读取不到,将/etc/profile文件中的环境变量复制到 ~/.bashrc 就解决了