在启动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]# java
用法: java [-options] class [args...]
(执行类)
或 java [-options] -jar jarfile [args...]
(执行 jar 文件)
其中选项包括:
-d32 使用 32 位数据模型 (如果可用)
-d64 使用 64 位数据模型 (如果可用)
-server 选择 "server" VM
默认 VM 是 server. -cp <目录和 zip/jar 文件的类搜索路径>
-classpath <目录和 zip/jar 文件的类搜索路径>
用 : 分隔的目录, JAR 档案
和 ZIP 档案列表, 用于搜索类文件。
-D<名称>=<值>
设置系统属性
-verbose:[class|gc|jni]
启用详细输出
-version 输出产品版本并退出
-version:<值>
警告: 此功能已过时, 将在
未来发行版中删除。
需要指定的版本才能运行
-showversion 输出产品版本并继续
-jre-restrict-search | -no-jre-restrict-search
警告: 此功能已过时, 将在
未来发行版中删除。
在版本搜索中包括/排除用户专用 JRE
-? -help 输出此帮助消息
-X 输出非标准选项的帮助
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
按指定的粒度启用断言
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
禁用具有指定粒度的断言
-esa | -enablesystemassertions
启用系统断言
-dsa | -disablesystemassertions
禁用系统断言
-agentlib:<libname>[=<选项>]
加载本机代理库 <libname>, 例如 -agentlib:hprof
另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
-agentpath:<pathname>[=<选项>]
按完整路径名加载本机代理库
-javaagent:<jarpath>[=<选项>]
加载 Java 编程语言代理, 请参阅 java.lang.instrument
-splash:<imagepath>
使用指定的图像显示启动屏幕
有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。
[root@zookeeper1 zookeeper-3.4.5]# java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)
[root@zookeeper1 zookeeper-3.4.5]#

那么下面我们便查看zookeeper的端口2181是否已经被占用了(当然,有可能大家已经改用其它端口了,这个根据大家的实际来操作),如下所示,可以看到,2181端口还真的被占用了!这就是问题的根源,我们可以看到占用2181端口的进程号是1403,那么我们便杀掉这个进程。

    [root@zookeeper1 zookeeper-3.4.5]# netstat -apn | grep 2181
tcp 0 0 :::2181 :::* LISTEN 1403/java
[root@zookeeper1 zookeeper-3.4.5]#

杀掉进程的命令是kill -9 1403,杀掉进程之后再检查一下是否还有进程占用2181端口,发现已经没有进程占用了。

下面我们再来启动zookeeper,就应该能正常启动了。

    [root@zookeeper1 zookeeper-3.4.5]# kill -9 1403
[root@zookeeper1 zookeeper-3.4.5]# netstat -apn | grep 2181
[root@zookeeper1 zookeeper-3.4.5]#

如果上面的操作还解决不了问题,那么我们接着到zookeeper-3.4.5的data目录下,可以看到如下所示的文件,其中version-2文件夹和zookeeper_server.pid两个文件都是需要删除掉的。

  1.  
    [root@zookeeper1 data]# ll
  2.  
    总用量 12
  3.  
    -rw-r--r--. 1 root root 2 4月 26 05:31 myid
  4.  
    drwxr-xr-x. 2 root root 4096 4月 26 07:03 version-2
  5.  
    -rw-r--r--. 1 root root 4 4月 28 04:25 zookeeper_server.pid
  6.  
    [root@zookeeper1 data]#

删除操作如下,删完只剩下myid文件了。

    [root@zookeeper1 data]# rm -rf version-2/ zookeeper_server.pid
[root@zookeeper1 data]# ls
myid
[root@zookeeper1 data]#

我们再次尝试启动zookeeper,如下所示,发现zookeeper终于正常启动了。

  1.  
    [root@zookeeper1 zookeeper-3.4.5]# bin/zkServer.sh start
  2.  
    JMX enabled by default
  3.  
    Using config: /usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfg
  4.  
    Starting zookeeper ... STARTED
  5.  
    [root@zookeeper1 zookeeper-3.4.5]# bin/zkServer.sh status
  6.  
    JMX enabled by default
  7.  
    Using config: /usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfg
  8.  
    Mode: follower
  9.  
    [root@zookeeper1 zookeeper-3.4.5]#

还有一种情况就是,启动zookeeper集群的某个节点时死活启动不了,把上面所说的三种情况都检查过了还是启动不了,这时我们可以先启动zookeeper的另外几个节点,等把其它节点启动好了,这个启动不了节点就自动启动好了!!!

基本上这几种情况便可以解决zookeeper无法启动的问题了(如果还是不行,就要看看是不是安装zookeeper的步骤有错误了)

解决Zookeeper无法启动的问题的更多相关文章

  1. Apache ZooKeeper 服务启动源码解释

    转载:https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper-code/ 本文首先讲解了 Apache ZooKeeper 服 ...

  2. zookeeper无法启动"Unable to load database on disk

    QuorumPeerMain,ResourceManager都没有起来 resourcemanager.log如下 2018-09-28 23:17:02,787 FATAL org.apache.h ...

  3. 解决 Virtual Box 启动 Cannot load R0 module supLoadModule returned VERR_LDR_MISMATCH_NATIVE Failed to register ourselves as a PCI Bus (VERR_MODULE_NOT_FOUND)

    返回 代码:E_FAIL (0x80004005)组件:Console界面:IConsole {8ab7c520-2442-4b66-8d74-4ff1e195d2b6} 原因: 我新建了一个vdi文 ...

  4. 替换系统数据库解决SQLSERVER服务启动不了的问题

    替换系统数据库解决SQLSERVER服务启动不了的问题 当遇到SQLSERVER服务启动不起来的时候,我们试过把系统的四个数据库master ,model ,tempdb,msdb 替换掉,Windo ...

  5. 解决IIS无法启动w3svc

    1>:首先在CMD命令行中输入:fsutil resource setautoreset true c:\ 2>:然后在运行services.msc 3>:找到Windows Pro ...

  6. 【转】解决keepalived正常启动但是虚IP(VIP)没有生成的问题

    如题所示,keepalived安装配置好之后能够正常启动,但是虚IP并没有生成.接着检查防火墙(iptables)发现也没有相关的限制.稍微郁闷了一下之后,查看了keepalived日志文件,这次成功 ...

  7. 完美解决 开机无法启动 提示0xc000000e

    注:昨天装系统碰到这个问题,这个方法说的较详细,我的是WIN7系统,开机提示引导文件错误,代码为0xc000000e 无法进入系统,使用PE进入后,在运行里输入CMD,然后按下文红字开始操作 完美解决 ...

  8. zookeeper 开机启动

    第一种:直接修改/etc/rc.d/rc.local文件 在/etc/rc.d/rc.local文件中需要输入两行,其中export JAVA_HOME=/usr/java/jdk1.8.0_112是 ...

  9. 解决Linux下启动Tomcat遇到Neither the JAVA_HOME ...报错

    解决Linux下启动Tomcat遇到Neither the JAVA_HOME ...报错 Neither the JAVA_HOME nor the JRE_HOME environment var ...

随机推荐

  1. Python + Selenium +Chrome 批量下载网页代码修改【新手必学】

    Python + Selenium +Chrome 批量下载网页代码修改主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt来达到在登陆状态下 批量打开并下载网页, ...

  2. LTE引理——解决数论竞赛题的利器

    LTE (Lifting The Exponent Lemma)引理是一个解指数型不定方程的强力工具.它在Olympiad folklore非常知名,虽然它的起源已经无从查找了.它和Hensel’s ...

  3. layer.open 回调函数

    官方资料:http://www.layui.com/doc/modules/layer.html 在一个弹出框中新增个按钮,点击按钮后执行自己的语句(返回上一页并刷新). layer.open({ti ...

  4. ASP.NET Core Web API中实现全局异常捕获与处理

    处理全局异常 HANDLING ERRORS GLOBALLY 在上面的示例中,我们的 action 内部有一个 try-catch 代码块.这一点很重要,我们需要在我们的 action 方法体中处理 ...

  5. 动态路由协议 RIP

    RIP:Routing Information Protocol.RFC1058. 距离矢量协议:有间隔的多少和方向.传递的是路由条目.每个路由器不知道网络的完整拓扑结构,OSPF知道. 度量值:每种 ...

  6. Java进阶学习(5)之设计原则(下)

    框架加数据 把数据的硬编码尽可能解成框架加数据的结构 城堡游戏修改后的代码 Room类 package com.castle; import java.util.HashMap; public cla ...

  7. js中yyyymmdd hh:mm:ss字符转换为Date

    var dateString="20190102 10:30:35"; var pattern = /(\d{4})(\d{2})(\d{2})/; var formatedDat ...

  8. [蓝桥杯][基础训练]Huffuman树

    Description Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. , p1, …, pn-1},用这列数构造Huffman树的过程如下:1. 找到{pi} ...

  9. opencv安装中的各种问题汇总

    问题1:opencv-2.4.10/modules/gpu/src/nvidia/core/NCV.cu(356): error : namespace "std" has no ...

  10. 测试工具 - IDEA - IDEA Code Coverage

    概述 使用 idea 自带的 code coverage 工具 背景 了解 白盒测试用例设计 和 测试覆盖率 之后, 大概就需要 实践 了 实践的话, 还是需要 工具 来检验效果 工具选取 选项 Ja ...