Zookeeper伪分布式配置

1.下载

从hust的镜像站下载

地址:

http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.5.4-beta/zookeeper-3.5.4-beta.tar.gz

2.然后解压、移动到自己喜欢的位置就行

我是放到 /usr/zookeeper下面

3.配置(需要配置好Java环境)

1)修改配置文件

cd /usr/zookeeper/conf
cp zoo_sample.cfg zoo1.cfg

然后使用vim编辑zoo1.cfg

需要修改 dataDir,添加dataLogDir,添加server.0、server.1、server.2(假设集群有3个节点)

我的修改如下:

dataDir=/usr/zookeeper/data/1
clientPort=2181
dataLogDir=/usr/zookeeper/log/1
server.0=0.0.0.0:2287:3387
server.1=localhost:2288:3388
server.2=localhost:2289:3389

之后重复复制和编辑操作,创建zoo2.cfg、zoo3.cfg

把dataDir分别改为 /usr/zookeeper/data/2 、 /usr/zookeeper/data/3

clientPort分别改为 2182 2183

dataLogDir分别改为 /usr/zookeeper/log/2、 /usr/zookeeper/log/3

zoo2的server.1需要改成0.0.0.0:2288:3388,zoo3同理修改server.2

2)创建myid

使用mkdir -p 命令,创建/usr/zookeeper/data及子目录1、2、3

然后使用 echo "0" > /usr/zookeeper/data/1/myid 创建server.0的id文件,另两个目录同理

3.运行

命令格式:

zkServer.sh start zoo.cfg

这一步开始遇到问题了

我本地的WSL环境,用脚本启动不知为何总是报错,如下:

[2018-11-08 08:57:19,707] INFO Resolved hostname: localhost to address: localhost/127.0.0.1 (org.apache.zookeeper.server.quorum.QuorumPeer)
[2018-11-08 08:57:20,709] WARN Cannot open channel to 1 at election address localhost/127.0.0.1:3388 (org.apache.zookeeper.server.quorum.QuorumCnxManager)
java.net.ConnectException: Connection refused (Connection refused)
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:558)
        at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:610)
        at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:838)
        at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:957)
[2018-11-08 08:57:20,714] INFO Resolved hostname: localhost to address: localhost/127.0.0.1 (org.apache.zookeeper.server.quorum.QuorumPeer)
[2018-11-08 08:57:20,714] INFO Notification time out: 400 (org.apache.zookeeper.server.quorum.FastLeaderElection)

逐个启动,输出倒是没什么问题,但是用 zkServer.sh status 命令仍显示无法连接,jps也没有zookeeper的进程,说明没启动成功,如果用zoo_sample.cfg单机模式启动是正常的,搞不懂什么问题

于是换服务器环境重试一边,没遇到任何问题就成功了

ubuntu@VM-0-6-ubuntu:/usr/zookeeper/data$ jps
29124 QuorumPeerMain
29176 QuorumPeerMain
29291 Jps
29244 QuorumPeerMain

使用 zkCli.sh -server 127.0.0.1:2181 连接服务器,可以成功连接

4.遇到的其他奇怪问题:

1)明明安装了Java,仍然报错:

Error: JAVA_HOME is not set and could not be found.

在 /etc/profile 已经export了JAVA_HOME和PATH,直接在终端使用export命令也能看到值

使用java -version也没问题,最奇怪的是脚本的输出里能看到,实际上脚本已经读取到JAVA_HOME

输出了类似 java:/usr/java/bin/java 的内容

在 zkEnv.sh 显式export JAVA_HOME也没用

无解

2)zkEnv.sh 报各种格式错误

比如说提示某一行的括号错误,应该是"fi"之类的

也是无解,而且现在还不能复现了。。。

猜你喜欢

转载自blog.csdn.net/u010670411/article/details/83864190