• zookeeper不能正常启动问题(转)


    [html]  view plain  copy
     
    1. [root@zookeeper1 zookeeper-3.4.5]# bin/zkServer.sh status  
    2. JMX enabled by default  
    3. Using config: /usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfg  
    4. Error contacting service. It is probably not running.  
    5. [root@zookeeper1 zookeeper-3.4.5]#  


          于是尝试解决它,首先要想到的是是否安装了JDK,因为zookeeper的运行需要JVM环境,可以使用java和java -version命令来验证,如下所示,可以看到JDK已经正确安装。

    [html]  view plain  copy
     
    1. [root@zookeeper1 zookeeper-3.4.5]# java  
    2. 用法: java [-options] class [args...]  
    3.            (执行类)  
    4.    或  java [-options] -jar jarfile [args...]  
    5.            (执行 jar 文件)  
    6. 其中选项包括:  
    7.     -d32      使用 32 位数据模型 (如果可用)  
    8.     -d64      使用 64 位数据模型 (如果可用)  
    9.     -server   选择 "server" VM  
    10.                   默认 VM 是 server.  
    11.   
    12.     -cp <目录和 zip/jar 文件的类搜索路径>  
    13.     -classpath <目录和 zip/jar 文件的类搜索路径>  
    14.                   用 : 分隔的目录, JAR 档案  
    15.                   和 ZIP 档案列表, 用于搜索类文件。  
    16.     -D<名称>=<值>  
    17.                   设置系统属性  
    18.     -verbose:[class|gc|jni]  
    19.                   启用详细输出  
    20.     -version      输出产品版本并退出  
    21.     -version:<值>  
    22.                   警告: 此功能已过时, 将在  
    23.                   未来发行版中删除。  
    24.                   需要指定的版本才能运行  
    25.     -showversion  输出产品版本并继续  
    26.     -jre-restrict-search | -no-jre-restrict-search  
    27.                   警告: 此功能已过时, 将在  
    28.                   未来发行版中删除。  
    29.                   在版本搜索中包括/排除用户专用 JRE  
    30.     -? -help      输出此帮助消息  
    31.     -X            输出非标准选项的帮助  
    32.     -ea[:<packagename>...|:<classname>]  
    33.     -enableassertions[:<packagename>...|:<classname>]  
    34.                   按指定的粒度启用断言  
    35.     -da[:<packagename>...|:<classname>]  
    36.     -disableassertions[:<packagename>...|:<classname>]  
    37.                   禁用具有指定粒度的断言  
    38.     -esa | -enablesystemassertions  
    39.                   启用系统断言  
    40.     -dsa | -disablesystemassertions  
    41.                   禁用系统断言  
    42.     -agentlib:<libname>[=<选项>]  
    43.                   加载本机代理库 <libname>, 例如 -agentlib:hprof  
    44.                   另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help  
    45.     -agentpath:<pathname>[=<选项>]  
    46.                   按完整路径名加载本机代理库  
    47.     -javaagent:<jarpath>[=<选项>]  
    48.                   加载 Java 编程语言代理, 请参阅 java.lang.instrument  
    49.     -splash:<imagepath>  
    50.                   使用指定的图像显示启动屏幕  
    51. 有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。  
    52. [root@zookeeper1 zookeeper-3.4.5]# java -version  
    53. java version "1.8.0_112"  
    54. Java(TM) SE Runtime Environment (build 1.8.0_112-b15)  
    55. Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)  
    56. [root@zookeeper1 zookeeper-3.4.5]#   


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

    [html]  view plain  copy
     
    1. [root@zookeeper1 zookeeper-3.4.5]# netstat -apn | grep 2181  
    2. tcp        0      0 :::2181                     :::*                        LISTEN      1403/java             
    3. [root@zookeeper1 zookeeper-3.4.5]#  


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

    [html]  view plain  copy
     
    1. [root@zookeeper1 zookeeper-3.4.5]# kill -9 1403  
    2. [root@zookeeper1 zookeeper-3.4.5]# netstat -apn | grep 2181  
    3. [root@zookeeper1 zookeeper-3.4.5]#  

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

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

    [html]  view plain  copy
     
    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文件了。

    [html]  view plain  copy
     
    1. [root@zookeeper1 data]# rm -rf version-2/ zookeeper_server.pid   
    2. [root@zookeeper1 data]# ls  
    3. myid  
    4. [root@zookeeper1 data]#  

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

    [html]  view plain  copy
     
    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的步骤有错误了)

    http://blog.csdn.net/u012453843/article/details/70878117

    https://blog.csdn.net/m0_38138387/article/details/79504758

  • 相关阅读:
    003_cd pushd popd三个命令的区别
    002_更新Nginx证书
    001_nginx常用参数查询
    001_shell经典案例
    001_chrome工具详解
    002_分布式搜索引擎Elasticsearch的查询与过滤
    004_加速国内docker源下载速度
    dango models and database ---- relation ship
    dango models and database ---- verbose name
    MySQL字符集详解
  • 原文地址:https://www.cnblogs.com/xiaohanlin/p/14208013.html
Copyright © 2020-2023  润新知