準備三臺機器
node-131
node-132
node-133
這裏爲主機名,也可寫入IP,主機名需要在/etc/hosts文件里加入對應節點信息。
下載zookeeper包
http://mirrors.hust.edu.cn/apache/zookeeper/stable/zookeeper-3.4.10.tar.gz
安裝
1.解壓
進入指定目錄,解壓命令:
Tar -zxvf zookeeper-3.4.10.tar.gz
2.進入conf目錄
進入conf目錄
3.修改默認的配置文件
將默認的zoo-simple.cfg改名爲zoo.cfg
命令: mv zoo-simple.cfg zoo.cfg
Zoo.cfg裏面修改zookeeper數據存放位置
dataDir=/var/data/zookeeper
在文件最後添加其他節點信息
server.1=node-131:12888:13888
server.2=node-132:12888:13888
server.3=node-133:12888:13888
node-131:代表zookeeper的主機名
12888端口:代表訪問Zookeeper的端口
13888端口:代表重新選舉leader的端口
4.創建myid文件
在 /var/data/zookeeper目錄下創建myid文件
命令: echo 1 > myid
node-131節點寫入1
其他節點寫入相應的值,與Zoo.cfg裏server.1 這裏的1相對應。
啓動
/usr/local/zookeeper/zookeeper-3.4.10/bin/zkServer.sh start
查看結果
/usr/local/zookeeper/zookeeper-3.4.10/bin/zkServer.sh status
可能遇到的問題
1.不停的報拒絕訪問錯誤:
2018-06-30 17:19:20,221 [myid:1] - WARN [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@588] - Cannot open channel to 3 at election address node-3/192.168.1.106:13888
java.net.ConnectException: 拒絕連接 (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:562)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:614)
at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:843)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:913)
配置都沒有問題,嘗試 在host中 註釋掉 127.0.0.1 的配置。