Linux下Zookeeper分佈式安裝與配置

【1】集羣環境搭建分佈式

① 首先按照Zookeeper基礎入門與安裝部署中在三個服務器上安裝配置單機版Zookeeper。

在這裏插入圖片描述
② 在Zookeeper的數據目錄下創建名字爲myid的文件,內容爲其集羣唯一編號。

如這裏數據目錄均在/home/softinstall/apache-zookeeper-3.5.5-bin/zkData下,這個路徑可以自定義,配置在zoo.cfg中。

如下所示在服務器一中創建myid文件

[root@localhost apache-zookeeper-3.5.5-bin]# cd zkData/
[root@localhost zkData]# touch myid
[root@localhost zkData]# vim myid
[root@localhost zkData]# more myid
1

③ 修改集羣中每個Zookeeper的zoo.cfg文件

添加集羣配置:

server.1=192.168.0.100:2888:3888
server.2=192.168.0.101:2888:3888
server.3=192.168.0.110:2888:3888

在這裏插入圖片描述

配置參數說明

server.A=B:C:D
  • A是一個數字,表示這是第幾號服務器。集羣模式下配置一個文件myid,這個文件在dataDir目錄下,這文件裏面的數據就是A的值。Zookeeper啓動時讀取此文件,拿到裏面的數據與zoo.cfg裏面的配置信息比對從而判斷到底是哪個server。
  • B是服務器IP地址。
  • C是這個服務器與集羣中leader服務器交換信息的端口。
  • D是萬一集羣中的leader服務器掛了,需要一個端口來重新進行選舉,選出一個新的leader。這個端口就是用來執行選舉時服務器相互通信的端口。

④ 啓動server1

看下面日誌,是不是出錯了?

[root@localhost apache-zookeeper-3.5.5-bin]# vim conf/zoo.cfg
[root@localhost apache-zookeeper-3.5.5-bin]# bin/zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /home/softinstall/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@localhost apache-zookeeper-3.5.5-bin]# bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /home/softinstall/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.
[root@localhost apache-zookeeper-3.5.5-bin]#

⑤ 啓動server2

//如下是server2
[root@localhost apache-zookeeper-3.5.5-bin]# vim conf/zoo.cfg
[root@localhost apache-zookeeper-3.5.5-bin]# bin/zkServer.sh start
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /home/softinstall/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@localhost apache-zookeeper-3.5.5-bin]# bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /home/softinstall/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
[root@localhost apache-zookeeper-3.5.5-bin]#

server2成功晉級爲leader,此時再次查看server1的status會發現其成爲了follower:

//如下是server1
[root@localhost apache-zookeeper-3.5.5-bin]# bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /home/softinstall/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

⑥ 啓動server3

server3成爲server2的follower。

⑦ 客戶端命令行操作

可以使用help查看客戶端有哪些命令可操作:

ZooKeeper -server host:port cmd args
addauth scheme auth
close
config [-c] [-w] [-s]
connect host:port
create [-s] [-e] [-c] [-t ttl] path [data] [acl]
delete [-v version] path
deleteall path
delquota [-n|-b] path
get [-s] [-w] path
getAcl [-s] path
history
listquota path
ls [-s] [-w] [-R] path
ls2 path [watch]
printwatches on|off
quit
reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
redo cmdno
removewatches path [-c|-d|-a] [-l]
rmr path
set [-s] [-v version] path data
setAcl [-s] [-v version] [-R] path acl
setquota -n|-b val path
stat [-w] path
sync path
  • 查看當前znode中包含的內容ls /
[zk: localhost:2181(CONNECTED) 5] ls /
[zookeeper]
  • 查看當前節點詳細數據ls2 /
[zk: localhost:2181(CONNECTED) 6] ls2 /
'ls2' has been deprecated. Please use 'ls [-s] path' instead.
[zookeeper]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1

該命令提示過期建議使用ls [-s] path

[zk: localhost:2181(CONNECTED) 7] ls -s /
[zookeeper]cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1


【2】單機搭建僞分佈式

同上面一樣,只不過是在一臺機器組件zookeeper集羣,如下圖所示:
在這裏插入圖片描述

3181配置文件如下:

clientPort=3181
admin.serverPort=28881

server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883

3182配置文件如下:

clientPort=3182
admin.serverPort=28882

server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883

3183配置文件如下:

clientPort=3183
admin.serverPort=28883

server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883

同樣,在每個data目錄下有個myid文件,裏面配置了自己的編號。
在這裏插入圖片描述

參考博文:Zookeeper基礎入門與安裝部署

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章