zoukankan      html  css  js  c++  java
  • zookeeper安装遇到的问题

    http://blog.csdn.net/qinglu000/article/details/9816135


    原文地址:http://hi.baidu.com/luhao8415/item/23c6e7f075aa18b730c1993a

    最近常有启动zookeeper出现问题的,整理下贴出来,以后也可以参考参考。。

    1. 启动zookeeper后出现noClassFound等等错误,例如:

    Exception in thread "main" java.lang.NoSuchMethodError: method java.lang.management.ManagementFactory.getPlatformMBeanServer with signature ()Ljavax.management.MBeanServer; was not found.

    at org.apache.zookeeper.jmx.ManagedUtil.registerLog4jMBeans(ManagedUtil.java:48)

    at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:114)

    at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:103)

    at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:7

    可能原因是该服务器的jdk版本不正确,或是环境变量未设置好。

    例如,原来的linux下已经装有jdk-1.4,然后又安装了新版本的jdk-1.6,我们按照网上教程的步骤安装好zookeeper并设置环境变量后,

    echo $JAVA_HOME显示java-1.6,

    但是用java -version命令发现,仍然显示java-1.4,说明环境变量未配好。zookeeper读取的jdk版本仍然是旧版本的jdk-1.4。

    解决方法是在/etc/bashrc文件的末尾,

    export JAVA_HOME=/usr/java/jdk1.6.0_23

    export JRE_HOME=$JAVA_HOME/jre

    export PATH=$JAVA_HOME/bin:$PATH

    //这里要注意,应该将$PATH放在尾部而不是放在头部,网上有安装教程写的是$PATH :$JAVA_HOME/bin,这样zookeeper读取的将是$PATH中的jdk旧版本而出错。

    export CLASSPATH=.:$JAVA_HOME/lib/*.jar

    2. 当一台或某台机器反复出现cannot open channel to xxxx:2888/3888,报错(例如无法与leader进行同步等等错误),无法完成选举(这个错误以前一直有出现,但是时有时无,不知道为什么)。

    可能原因是防火墙开启,导致某台机器的端口不能开启,一般是2888不能开启。linux下的很多分布式应用会要求关闭防火墙。。。所以还是干脆关闭算了。今天把防火墙直接关闭后zookeeper启动正常。

    用命令service iptables status查看,显示一系列消息,表示防火墙处于开启状态;可以用service iptables stop关闭防火墙。但是这个只是临时关闭防火墙。

    要使系统启动时不自动启动防火墙,则可以使用命令chkconfig –list iptables查看防火墙信息,chkconfig iptables off关闭防火墙。以后若要打开,用chkconfig iptables on命令。

    ---

    ps今天早上来看发现防火墙又开启了,貌似不管用。还是用以下三条命令关闭。

    chkconfig --level 35 iptables off ; /etc/init.d/iptables stop; iptables -P INPUT DROP

    3. Zookeeper能够正常启动,但是显示如下错误:

    Starting zookeeper…

    ./zkServer.sh: line 80: /home /sysdata/zookeeper/zookeeper-data/zookeeper_server.pid: No such file or directory

    STARTED

    在配置文件zoo.cfg文件中指定了zookeeper启动的pid文件的生成位置:dataDir=/home /sysdata/zookeeper/zookeeper-data,但是我们发现该pid并没有生成。而且想要停止zookeeper显然也不能成功:

    Stopping zookeeper ...

    error: could not find file /zookeeper_server.pid。

    请教大牛之后,这个让我头疼很久的问题,终于解决了。。。

    原来是我的zoo.cfg文件中的给dataDir路径赋值前多了一个空格!zookeeper在读取此配置文件时会把空格也读进文件名(脚本咋这不智能呢),将此空格删去后zookeeper启动、关闭就正常了!

    zoo.cfg文件很不智能,还有就是注释的时候#后边还得加一个空格。



    其他: http://blog.csdn.net/shenlan211314/article/details/6187034


  • 相关阅读:
    【转载】COM 组件设计与应用(十一)—— IDispatch 及双接口的调用
    【转载】COM 组件设计与应用(十)——IDispatch 接口 for VC.NET
    网易云课堂_Linux操作系统入门(嵌入式开发零基础Ⅰ)_章节3:Linux 命令(下)
    网易云课堂_Linux操作系统入门(嵌入式开发零基础Ⅰ)_章节2:Linux 命令(上)
    网易云课堂_艾叔:零基础一站式C语言|C程序设计精讲_章节12:指针
    网易云课堂_艾叔:零基础一站式C语言|C程序设计精讲_章节8:输入与输出
    网易云课堂_艾叔:零基础一站式C语言|C程序设计精讲_章节5整型
    Vim应用
    gcc编译命令
    虚拟机使用PuTTY、SSH Secure Shell Client前的配置
  • 原文地址:https://www.cnblogs.com/yeemi/p/7470150.html
Copyright © 2011-2022 走看看