Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 731|回复: 0

解决Zookeeper无法启动的问题

[复制链接]
  • TA的每日心情
    奋斗
    6 天前
  • 签到天数: 803 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726482
    发表于 2021-7-10 12:10:00 | 显示全部楼层 |阅读模式

    在启动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的步骤有错误了)

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-11-23 17:38 , Processed in 0.078245 second(s), 30 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表