Linux安裝zookeeper以及僞集羣

一、安裝條件

想要安裝zookeeper,必須先在linux中安裝好jdk

二、下載並解壓zookeeper壓縮包

1. 先進入/usr/wangjian/software/目錄,也可以是其他的目錄:

[root@VM_0_11_centos software]# cd /usr/wangjian/software

2. zookeeper安裝包可以在官網下載。

也可以在後面這個地址下載  http://mirror.bit.edu.cn/apache/zookeeper選擇版本。

我用的少apache-zookeeper-3.5.6-bin.tar.gz

如果鏈接打不開,就先打開 http://mirror.bit.edu.cn/apache/zookeeper , 再選擇版本。

3. 解壓:

[root@VM_0_11_centos software]# tar -zxvf apache-zookeeper-3.5.6-bin.tar.gz

4.重命名

  [root@VM_0_11_centos software]# mv apache-zookeeper-3.5.6-bin.tar.gz zookeeper

三、編輯配置文件

1.進入conf目錄:

[root@VM_0_11_centos zookeeper]# cd /conf

2. 將zoo_sample.cfg這個文件複製爲zoo.cfg (必須是這個文件名)

[root@VM_0_11_centos conf]# cp  zoo_sample.cfg  zoo.cfg

3. 進入zoo.cfg文件進行編輯

[root@VM_0_11_centos conf]# vim zoo.cfg

4. 按 i 進入編輯模式,修改以下內容:

dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/log

5. 在tmp目錄創建目錄。

[root@VM_0_11_centos conf]# mkdir /tmp/zookeeper

[root@VM_0_11_centos conf]# mkdir /tmp/zookeeper/data

[root@VM_0_11_centos conf]# mkdir /tmp/zookeeper/log

四、配置環境變量

1.上面的操作都完事之後,我們需要配置一下環境變量,配置環境變量的命令如下:

[root@VM_0_11_centos conf]# vim /etc/profile

五、啓動zookeeper

1.進入bin目錄,並啓動zookeep。如果不是在bin目錄下執行,啓動zookeeper時會報錯: bash: ./zkServer.sh:  No such file or directory

 

[root@VM_0_11_centos bin]# ./zkServer.sh start

2.啓動成功效果如下:

ZooKeeper JMX enabled by default
Using config: /usr/wangjian/software/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

3.查看狀態:
 

[root@VM_0_11_centos bin]# ./zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /usr/wangjian/software/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: standalone

4.zookeeper的服務端啓動後,還需要啓動zookeeper的客戶端:

[root@VM_0_11_centos bin]# ./zkCli.sh 
啓動成功效果如下:Welcome to ZooKeeper!
JLine support is enabled
2020-04-01 13:39:22,689 [myid:localhost:2181] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@959] - Socket connection established, initiating session, client: /0:0:0:0:0:0:0:1:39848, server: localhost/0:0:0:0:0:0:0:1:2181
2020-04-01 13:39:22,721 [myid:localhost:2181] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1394] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x17133b69c49000f, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null

關於集羣:這裏我是配的僞集羣.

 和單機版的區別,1.不需要配置環境變量                                                                             2.dataDir目錄下需要新建一個文件,文件內容就是server.1的1,                                                   3.每個zoo.cfg都需要改dataDir和logDir地址,以及2181端口號(2181,2182,2183)                   4.server.1=ip:端口:端口,這裏的Ip如果用的是雲服務器,一定要寫內網ip

 

六、zookeeper使用

通過 ./zkCli.sh 進入客戶端後,就可以使用命令來操作zookeeper了。

1.創建節點

使用create命令,可以創建一個zookeeper節點。

create [-s]   [-e]  path  data  acl

其中-s表示順序節點,-e表示臨時節點。默認情況下,創建的是持久節點。

path是節點路徑,data是節點數據,acl是用來進行權限控制的。

如下:

創建一個叫做/zk-test的節點,內容是"123"

[zk: localhost:2181(CONNECTED) 0] create /zk-test 123

Created /zk-test

創建/zk-test的子節點book,內容是"233"

[zk: localhost:2181(CONNECTED) 7] create  /zk-test/book  233
Created /zk-test/book

 

2.查看節點內容

使用get命令,可以獲取zookeeper指定節點的內容和屬性信息。

如下:

 

[zk: localhost:2181(CONNECTED) 1] get /zk-test

123
cZxid = 0x3a
ctime = Sun Nov 11 21:50:44 CST 2018
mZxid = 0x3a
mtime = Sun Nov 11 21:50:44 CST 2018
pZxid = 0x3a
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

 

3.查看子節點

使用ls命令可以查看指定節點下的所有子節點

以下查看根目錄下的所有子節點:

[zk: localhost:2181(CONNECTED) 2] ls /

[zk-test, zookeeper]

查看zk-test節點的子節點:

[zk: localhost:2181(CONNECTED) 3] ls /zk-test

[book]

 

4.更新節點內容

使用set命令,更新節點內容。格式爲:

set   path  data 

其中的data就是要更新的新內容。

 

[zk: localhost:2181(CONNECTED) 4] set /zk-test 456

cZxid = 0x3a
ctime = Sun Nov 11 21:50:44 CST 2018
mZxid = 0x3b
mtime = Sun Nov 11 22:05:20 CST 2018
pZxid = 0x3a
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

在輸出的信息中,可以發現,dataVersion的值由原來的0 變成了 1,這是因爲剛纔的更新操作導致該節點的數據版本也發生變更。

6.刪除節點

使用delete命令來刪除節點,如下:

[zk: localhost:2181(CONNECTED) 11] delete /zk-test

Node not empty: /zk-test

可以發現,一個節點存在子節點時,無法刪除該節點。

刪除子節點/zk-test/book,如下:

[zk: localhost:2181(CONNECTED) 12] delete /zk-test/book

WATCHER::

WatchedEvent state:SyncConnected type:NodeDeleted path:/zk-test/book

zookeeper中的watcher會監控節點,當子節點發生變化時會發出通知。此時提示子節點 /zk-test/book刪除成功。

繼續嘗試刪除節點 /zk-test,

[zk: localhost:2181(CONNECTED) 13] ls /zk-test
[]
[zk: localhost:2181(CONNECTED) 14] delete /zk-test
[zk: localhost:2181(CONNECTED) 15] ls /
[]

刪除成功。

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