坑爹的 ZooKeeper 的错误

本贴最后更新于 2329 天前,其中的信息可能已经事过境迁

[坑爹的 ZooKeeper 的错误]

博客分类:

第一天的时候,Zookeeper 的安装是成功的,也启动成功,但是第二天不知道就怎么了,突然就一直启动不起来。在‘#’后面的是注释:

目前所在的位置:

[scidb@localhost bin]$ pwd

/home/scidb/zookeeper/zookeeper-3.4.8/bin

在 bin 的文件下有这些文件:

[scidb@localhost bin]$ ls

README.txt zkCli.cmd zkEnv.cmd zkServer.cmd zookeeper.out

zkCleanup.sh zkCli.sh zkEnv.sh zkServer.sh

接下来启动 zkServer.sh

[scidb@localhost bin]$ sudo sh zkServer.sh start

ZooKeeper JMX enabled by default

Using config: /home/scidb/zookeeper/zookeeper-3.4.8/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

看起来是启动成功了哦,然后我们再来看看是否真的启动成功了。

[scidb@localhost bin]$ sh zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /home/scidb/zookeeper/zookeeper-3.4.8/bin/../conf/zoo.cfg

Error contacting service. It is probably not running.

呵呵,居然没有启动起来。然后我用 zkCli.sh 尝试启动客户端,结果。。

[scidb@localhost bin]$ sh zkCli.sh

Connecting to localhost:2181

2016-02-29 15:50:04,735 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.8--1, built on 02/06/2016 03:18 GMT

2016-02-29 15:50:04,739 [myid:] - INFO [main:Environment@100] - Client environment:host.name=localhost

2016-02-29 15:50:04,739 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_25

2016-02-29 15:50:04,740 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation

2016-02-29 15:50:04,741 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/usr/java/jdk1.8.0_25/jre

2016-02-29 15:50:04,741 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/home/scidb/zookeeper/zookeeper-3.4.8/bin/../build/classes:/home/scidb/zookeeper/zookeeper-3.4.8/bin/../build/lib/.jar:/home/scidb/zookeeper/zookeeper-3.4.8/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/scidb/zookeeper/zookeeper-3.4.8/bin/../lib/slf4j-api-1.6.1.jar:/home/scidb/zookeeper/zookeeper-3.4.8/bin/../lib/netty-3.7.0.Final.jar:/home/scidb/zookeeper/zookeeper-3.4.8/bin/../lib/log4j-1.2.16.jar:/home/scidb/zookeeper/zookeeper-3.4.8/bin/../lib/jline-0.9.94.jar:/home/scidb/zookeeper/zookeeper-3.4.8/bin/../zookeeper-3.4.8.jar:/home/scidb/zookeeper/zookeeper-3.4.8/bin/../src/java/lib/.jar:/home/scidb/zookeeper/zookeeper-3.4.8/bin/../conf:.:/usr/java/jdk1.8.0_25/lib/jt.jar:/usr/java/jdk1.8.0_25/lib/tools.jar:%JRE_HOME/lib:/home/123/Desktop/123/scidb4j.jar:/home/123/Desktop/123/protobuf-java.jar

2016-02-29 15:50:04,741 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=:/opt/scidb/14.12/lib:/opt/scidb/14.12/lib:/opt/scidb/14.12/lib:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

2016-02-29 15:50:04,741 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp

2016-02-29 15:50:04,741 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=

2016-02-29 15:50:04,741 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux

2016-02-29 15:50:04,741 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64

2016-02-29 15:50:04,741 [myid:] - INFO [main:Environment@100] - Client environment:os.version=2.6.32-431.29.2.el6.x86_64

2016-02-29 15:50:04,741 [myid:] - INFO [main:Environment@100] - Client environment:user.name=scidb

2016-02-29 15:50:04,741 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/home/scidb

2016-02-29 15:50:04,742 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/home/scidb/zookeeper/zookeeper-3.4.8/bin

2016-02-29 15:50:04,743 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@277050dc

Welcome to ZooKeeper!

2016-02-29 15:50:04,768 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)

JLine support is enabled

[zk: localhost:2181(CONNECTING) 0] 2016-02-29 15:50:04,828 [myid:] - WARN [main-SendThread(localhost:2181):ClientCnxn$SendThread@1162] - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect

java.net.ConnectException: Connection refused

at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:716)

at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)

at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)

2016-02-29 15:50:04,935 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)

2016-02-29 15:50:04,937 [myid:] - WARN [main-SendThread(localhost:2181):ClientCnxn$SendThread@1162] - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect

java.net.ConnectException: Connection refused

at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:716)

at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)

at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)

2016-02-29 15:50:05,039 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server localhost/192.168.133.130:2181. Will not attempt to authenticate using SASL (unknown error)

2016-02-29 15:50:05,040 [myid:] - WARN [main-SendThread(localhost:2181):ClientCnxn$SendThread@1162] - Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect

java.net.ConnectException: Connection refused

at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:716)

at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)

at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)

坑爹啊, 第一天的时候明明好好的,怎么现在就成这样的了。。。

我检查了配置文件,conf/zoo.cfg

[scidb@localhost bin]$ cat ../conf/zoo.cfg

tickTime=2000

initLimit=5

syncLimit=2

dataDir=/var/lib/zookeeper/

clientPort=2181

server.1=localhost:2888:3888

好好的,没什么问题啊。于是我又检查了 /var/lib/zookeeper/myid

[scidb@localhost bin]$ cat /var/lib/zookeeper/myid

1

乍一看配置没错啊,我想看看到底 2181 端口是否被占用。

[scidb@localhost bin]$ sudo netstat -anp | grep 2181

呵呵居然什么都没有,我启动了 tomcat,然后用命令在看看

[scidb@localhost bin]$ sudo netstat -anp | grep 8080

tcp 0 0 :::8080 :::* LISTEN 5027/java

命令没有问题,程序是真的没有启动起来。

接下来我在 google 和百度里看了搜索了许多有关于这个错误的信息。

分别搜索了‘at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)’、

‘at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:361)

’、‘INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)’……

看了很多在 http://stackoverflow.com/ 上的回答。。。

我靠,居然都没有用啊,多数都在强调你的配置文件的问题。但是配置都已经看烂了,没有什么问题啊!!!

# 好吧,最后我快绝望的我切换成 root 用户,然后象征性的启动,然后查看状态。

[root@localhost bin]# sh zkServer.sh start

ZooKeeper JMX enabled by default

Using config: /home/scidb/zookeeper/zookeeper-3.4.8/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

[root@localhost bin]# sh zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /home/scidb/zookeeper/zookeeper-3.4.8/bin/../conf/zoo.cfg

Mode: standalone

妈的,你敢信。。。居然好了。。。

然后查看端口占用

[scidb@localhost bin]$ sudo netstat -anp | grep 2181

tcp 0 0 :::2181 :::* LISTEN 5635/java

  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 5 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...