一、无法启动

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 就解决了

02-11 03:54