在启动zookeeper集群的单个zookeeper节点时总是报如下错误
[root@zookeeper1 zookeeper-3.4.5]# bin/zkServer.sh status JMX enabled by default Using config: /usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfg Error contacting service. It is probably not running. [root@zookeeper1 zookeeper-3.4.5]#
于是尝试解决它,首先要想到的是是否安装了JDK,因为zookeeper的运行需要JVM环境,可以使用java和java -version命令来验证,如下所示,可以看到JDK已经正确安装。
[root@zookeeper1 zookeeper-3.4.5]
那么下面我们便查看zookeeper的端口2181是否已经被占用了(当然,有可能大家已经改用其它端口了,这个根据大家的实际来操作),如下所示,可以看到,2181端口还真的被占用了!这就是问题的根源,我们可以看到占用2181端口的进程号是1403,那么我们便杀掉这个进程。
[root@zookeeper1 zookeeper-3.4.5]
杀掉进程的命令是kill -9 1403,杀掉进程之后再检查一下是否还有进程占用2181端口,发现已经没有进程占用了。
下面我们再来启动zookeeper,就应该能正常启动了。
[root@zookeeper1 zookeeper-3.4.5]
如果上面的操作还解决不了问题,那么我们接着到zookeeper-3.4.5的data目录下,可以看到如下所示的文件,其中version-2文件夹和zookeeper_server.pid两个文件都是需要删除掉的。
-
[root@zookeeper1 data]# ll
-
-
-rw-r--r--. 1 root root 2 4月 26 05:31 myid
-
drwxr-xr-x. 2 root root 4096 4月 26 07:03 version-2
-
-rw-r--r--. 1 root root 4 4月 28 04:25 zookeeper_server.pid
-
删除操作如下,删完只剩下myid文件了。
[root@zookeeper1 data]
我们再次尝试启动zookeeper,如下所示,发现zookeeper终于正常启动了。
-
[root@zookeeper1 zookeeper-3.4.5]# bin/zkServer.sh start
-
-
Using config: /usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfg
-
Starting zookeeper ... STARTED
-
[root@zookeeper1 zookeeper-3.4.5]# bin/zkServer.sh status
-
-
Using config: /usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfg
-
-
[root@zookeeper1 zookeeper-3.4.5]#
还有一种情况就是,启动zookeeper集群的某个节点时死活启动不了,把上面所说的三种情况都检查过了还是启动不了,这时我们可以先启动zookeeper的另外几个节点,等把其它节点启动好了,这个启动不了节点就自动启动好了!!!
基本上这几种情况便可以解决zookeeper无法启动的问题了(如果还是不行,就要看看是不是安装zookeeper的步骤有错误了) |