Подтвердить что ты не робот

"java.net.ConnectException: соединение отклонено" в zookeeper

Я установил zookeeper следующим образом:

wget http://archive.cloudera.com/cdh/3/zookeeper-3.3.3-cdh3u1.tar.gz

Вот мой zoo.cf:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/home/reach121/basf/data/zookeeper/data1
# maximum client connection
maxClientCnxns=500
# the port at which the clients will connect
clientPort=2183
server.1=localhost:2878:3878
server.2=localhost:2879:3879
server.3=localhost:2880:3880

и начинается с

/bin/zkServer.sh start zoo.cfg

и когда я это сделаю?

bin/zkCli.sh -server 127.0.0.1:2183

он дает мне эту ошибку:

Connecting to 127.0.0.1:2183
2011-10-13 14:11:28,433 - INFO  [main:[email protected]] - Client environment:zookeeper.version=3.3.3-cdh3u1--1, built on 07/18/2011 15:17 GMT
2011-10-13 14:11:28,437 - INFO  [main:[email protected]] - Client environment:host.name=cignexnew
2011-10-13 14:11:28,437 - INFO  [main:[email protected]] - Client environment:java.version=1.6.0_22
2011-10-13 14:11:28,438 - INFO  [main:[email protected]] - Client environment:java.vendor=Sun Microsystems Inc.
2011-10-13 14:11:28,438 - INFO  [main:[email protected]] - Client environment:java.home=/usr/lib/jvm/java-6-openjdk/jre
2011-10-13 14:11:28,439 - INFO  [main:[email protected]] - Client environment:java.class.path=/home/reach121/basf/zookeeper-3.3.3-cdh3u1/bin/../build/classes:/home/reach121/basf/zookeeper-3.3.3-cdh3u1/bin/../build/lib/*.jar:/home/reach121/basf/zookeeper-3.3.3-cdh3u1/bin/../zookeeper-3.3.3-cdh3u1.jar:/home/reach121/basf/zookeeper-3.3.3-cdh3u1/bin/../lib/log4j-1.2.15.jar:/home/reach121/basf/zookeeper-3.3.3-cdh3u1/bin/../lib/jline-0.9.94.jar:/home/reach121/basf/zookeeper-3.3.3-cdh3u1/bin/../src/java/lib/*.jar:/home/reach121/basf/zookeeper-3.3.3-cdh3u1/bin/../conf:
2011-10-13 14:11:28,439 - INFO  [main:[email protected]] - Client environment:java.library.path=/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
2011-10-13 14:11:28,440 - INFO  [main:[email protected]] - Client environment:java.io.tmpdir=/tmp
2011-10-13 14:11:28,440 - INFO  [main:[email protected]] - Client environment:java.compiler=<NA>
2011-10-13 14:11:28,441 - INFO  [main:[email protected]] - Client environment:os.name=Linux
2011-10-13 14:11:28,441 - INFO  [main:[email protected]] - Client environment:os.arch=amd64
2011-10-13 14:11:28,441 - INFO  [main:[email protected]] - Client environment:os.version=2.6.35.4-rscloud
2011-10-13 14:11:28,442 - INFO  [main:[email protected]] - Client environment:user.name=reach121
2011-10-13 14:11:28,443 - INFO  [main:[email protected]] - Client environment:user.home=/home/reach121
2011-10-13 14:11:28,443 - INFO  [main:[email protected]] - Client environment:user.dir=/home/reach121/basf/zookeeper-3.3.3-cdh3u1
2011-10-13 14:11:28,446 - INFO  [main:[email protected]] - Initiating client connection, connectString=127.0.0.1:2183 sessionTimeout=30000 [email protected]775
Welcome to ZooKeeper!
2011-10-13 14:11:28,472 - INFO  [main-SendThread():[email protected]] - Opening socket connection to server /127.0.0.1:2183
JLine support is enabled
2011-10-13 14:11:28,487 - WARN  [main-SendThread(localhost:2183):[email protected]] - 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:592)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119)
[zk: 127.0.0.1:2183(CONNECTING) 0] 2011-10-13 14:11:30,374 - INFO  [main-SendThread(localhost:2183):[email protected]] - Opening socket connection to server localhost/127.0.0.1:2183
2011-10-13 14:11:30,376 - WARN  [main-SendThread(localhost:2183):[email protected]] - 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:592)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1119)
4b9b3361

Ответ 1

Подняты ли серверы? Вероятно, не указано:

server.1=localhost:2878:3878
server.2=localhost:2879:3879
server.3=localhost:2880:3880

Если вы используете все три сервера на одном и том же хосте, каждый из них должен иметь другую конфигурацию - в частности, местоположение datadir должно быть другим, и вы должны убедиться, что каждый файл данных имеет файл myid, соответствующий строке сервера (т.е. сервер. # в config).

Обычно, когда вы хотите работать в распределенном режиме, вам необходимо иметь отдельные хосты. В этом случае, почему бы не просто запустить автономный (по умолчанию) режим?

Я предлагаю вам сначала прочитать в руководстве администратора: http://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html

Ответ 2

Убедитесь, что все необходимые службы запущены

Шаг 1: проверьте, работает ли hbase-master

sudo /etc/init.d/hbase-master status

если нет, тогда запустите его sudo /etc/init.d/hbase-master start

Шаг 2. Проверьте, работает ли hbase-regionserver

sudo /etc/init.d/hbase-regionserver status

если нет, тогда запустите его sudo /etc/init.d/hbase-regionserver start

Шаг 3. Проверьте, работает ли zookeeper-сервер

sudo /etc/init.d/zookeeper-server status

если нет, тогда запустите его sudo /etc/init.d/zookeeper-server start


или просто запустите эти 3 команды в строке.

sudo /etc/init.d/hbase-master restart
sudo /etc/init.d/hbase-regionserver restart
sudo /etc/init.d/zookeeper-server restart

после этого не забудьте проверить статус

sudo /etc/init.d/hbase-master status
sudo /etc/init.d/hbase-regionserver status
sudo /etc/init.d/zookeeper-server status

Вы можете обнаружить, что zookeeper все еще не запущен: то вы можете запустить zookeeper

sudo /usr/lib/zookeeper/bin/zkServer.sh stop
sudo /usr/lib/zookeeper/bin/zkServer.sh start

после этого снова проверьте состояние и убедитесь, что его запуск

sudo /etc/init.d/zookeeper-server status

Это должно работать.

Ответ 3

У меня была такая же проблема, связанная с клиентским кодом на mapr m3 из коробки

проблема заключается в том, что клиент пытался подключиться к Mook zookeeper на localhost.

/opt/mapr/conf/mapr-clusters.conf на моем кластере M3 указывалось на localhost... я изменил его на IP-адрес машины M3 и соединение с клиентом работало

/opt/mapr/conf/cldb.conf добавить ip-адрес вместо localhost

и перезапустить zookeeper