zoukankan      html  css  js  c++  java
  • zz-zookeeper 启动失败 BindException: Address already in use 或者Error contacting service. It is probably not running

    https://www.bbsmax.com/A/ZOJPOw8xzv/


    平台:centos-6.3-i386

       jdk-7u51

    storm 0.9.1

       python 2.6.6

         hadoop 1.2.1

      

    今天上午装storm的时候遇到这个问题,好郁闷。把网上介绍的方法都试了一遍,都没能很好的解决问题。

      先介绍我自己的方法:

    当我查看/bin目录下的zookeeper.out后,发现是2181端口被占用了,按照网上的方法,改成2182或者2183,都没有解决问题。此时我想到能不能把2181给kill,然后再重启?

    1:使用netstat -ptnl |grep 2181查看2181的情况

    [hadoop@master bin]$ netstat -ptnl |grep 2181
    (Not all processes could be identified, non-owned process info
    will not be shown, you would have to be root to see it all.)
    tcp 0 0 :::2181 :::* LISTEN 25484/java

    2:使用kill命令把占用2181端口的进程给杀死。(注意,kill的是25484)

    kill -9 25484

    3:把storm集群关闭

    ./zkServer.sh stop
    JMX enabled by default
    Using config: /home/hadoop/zookeeper-3.3.6/bin/../conf/zoo.cfg
    Stopping zookeeper ... STOPPED

    4:再次开启storm集群

    ./zkServer.sh start
    JMX enabled by default
    Using config: /home/hadoop/zookeeper-3.3.6/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED

    5:查看storm集群状态

    ./zkServer.sh status
    JMX enabled by default
    Using config: /home/hadoop/zookeeper-3.3.6/bin/../conf/zoo.cfg
    Mode: follower

    好了,整个过程结束。每个人遇到的情况都不尽相同。最重要的一点是看log日志,知道错在哪里,然后去改正。

      以下是网上介绍的方法:

    安装zookeeper-3.3.2的时候,启动正常没报错,但zkServer.sh status查看状态的时候却出现错误,如下:

    JMX enabled by default

    Using config: /hadoop/zookeeper/bin/../conf/zoo.cfg

    Error contacting service. It is probably not running.

    jps查看进程,却发现进程已启动

    7313  QuorumPeerMain

    在网上查阅资料一共有三种解决方法:

    1,打开zkServer.sh 找到status)

    STAT=`echo stat | nc localhost $(grep clientPort "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode`

    在nc与localhost之间加上 -q 1 (是数字1而不是字母l)

    如果已存在则去掉

    注:因为我用的zookeeper是3.4.5版本,所以在我的zkServer.sh脚本文件里根本没有这一行,所以没有生效

    2,调用sh zkServer.sh status 遇到这个问题。百度,google了后发现有人是修改sh脚本里的一个nc的参数来解决,可在3.4.5的sh文件里并没有找到nc的调用。配置文档里指定的log目录没有创建导致出错,手动增加目录后重启,问题解决。

    注:我想不是日志的问题所以这个方法根本就没有试

    3,创建数据目录,也就是在你zoo.cfg配置文件里dataDir指定的那个目录下创建myid文件,并且指定id,改id为你zoo.cfg文件中server.1=localhost:2888:3888中的    1.只要在myid头部写入1即可.

    注:在我第二次安装的时候,没有将myid文件创建在dataDir指定的那个目录下,也报了该错误。之后在dataDir指定的那个目录下创建myid文件就没有报错。

    4 因为防火墙没有关闭。关闭防火墙:

    #查看防火墙状态

    service iptables status

    #关闭防火墙

    service iptables stop

    #查看防火墙开机启动状态

    chkconfig iptables --list

    #关闭防火墙开机启动

    chkconfig iptables off

    注意:我的确在开始时候没有关闭防火墙,但是当我关闭防火墙之后也没有解决问题。

    5 没有建立主机和ip之间的映射关系。

    建立主机和ip之间映射关系的命令为 vim /etc/hosts   在文件的末端加入各个主机和ip地址之间的映射关系就可以了。

    注意:只有在建立了映射关系之后,才可以将在同一个网段下的机器利用主机名进行文件传递。问题解决!

    以上是网上找到的方法,我试了一遍,没解决问题,遇到这个问题的朋友可以对号入座,试一下。

  • 相关阅读:
    建站两个月,说说我的想法
    我见过的郭弃疾先生(兰亭集势CEO)
    C#数组和集合互相转换的几种方法的效率分析
    (五)React Ant Design Pro + .Net5 WebApi:后端环境搭建Autofac注入+ 泛型仓储
    关于C++中对私有的测试总结
    uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型(转)
    GDB调试
    linux删除乱码文件
    转:C++ nan
    vim
  • 原文地址:https://www.cnblogs.com/xiaodoujiaohome/p/11477434.html
Copyright © 2011-2022 走看看