好久没有打开zookeeper,之前是可以正常启动的,今天不知道为什么不行

输入bin/zkServer.sh status

$ bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/laylay/cluster/zookeeper/bin/…/conf/zoo.cfg
Starting zookeeper … STARTED

显示已启动,但是再检查jps,发现没成功

$ jps
15689 Jps

查看zookeeper.out文件vim zookeeper.out,发现有报错nohup: 无法运行命令 '/opt/jdk/bin/java': 没有那个文件或目录

去Stack Overflow搜了一下,这个帖子和我情况相似

附链接

跟着帖子尝试解决:

1、先查看JAVAHOME和PATH地址:

$ echo $JAVA_HOME

得到:/opt/jdk

$ echo $PATH

得到:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

2、然后打开zkServer.sh文件,在第一行加入以下内容:

export JAVA_HOME=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH
其中$JAVA_HOME和$PATH就是上边echo $JAVA_HOME命令和echo $PATH命令得到的结果,所以我的对应就是:

export JAVA_HOME=/opt/jdk
export PATH=/opt/jdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

但加入之后再启动zookeeper还是没成功。又在帖子下看到有人说“Your JAVA_HOME point to /usr/bin/java file but it should point to root directory of your JDK,So, try to set valid path to JDK root directory. I think it should fix your problem”,不懂具体什么意思,但大概推测一下就是说echo $JAVA_HOME命令给出的结果是错的,这个地址并不是JAVA_HOME的真实地址

3、找到JAVA_HOME真实地址

附参考帖子链接

先找到JAVA安装地址:

$ whereis java

java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

再进一步查看

$ ls -l /usr/bin/java

lrwxrwxrwx 1 root root 22 Mar 30 01:40 /usr/bin/java -> /etc/alternatives/java

进一步查看:

$ ls -l /etc/alternatives/java

lrwxrwxrwx 1 root root 43 Mar 30 01:40 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java

记住这个地址/usr/lib/jvm/java-11-openjdk-amd64

打开 /etc/environment :

$ sudo nano /etc/environment

在打开的文件里加入这两行(JAVA_HOME=刚刚记下的地址):

JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export JAVA_HOME

修改完成后,更新地址:

$. /etc/environment

再次查看JAVA_HOME地址:

$ echo $JAVA_HOME

/usr/lib/jvm/java-11-openjdk-amd64

得到的就是真实的地址了

4、最后打开zkServer.sh文件,把JAVA_HOME地址改成真实的就行了,再启动zookeeper就成功了
vim zkServer.sh

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=/usr/lib/jvm/java-11-openjdk-amd64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐