叢集思路:先搞定一臺伺服器,再克隆出兩臺,形成叢集!
我們的zookeeper是安裝在/opt目錄下
vim myid
#######################cluster##########################
server.1=192.168.204.141:2888:3888
server.2=192.168.204.142:2888:3888
server.3=192.168.204.143:2888:3888
設定引數解讀 server.A=B:C:D
找到虛擬機器器安裝的位置進入
在虛擬機器器資料目錄vms下,建立zk02
將本臺伺服器資料目錄下的.vmx檔案和所有的.vmdk檔案分別拷貝zk02下
虛擬機器器->檔案->開啟 (選擇zk02下的.vmx檔案)
開啟此虛擬機器器,彈出對話方塊,選擇「我已複製該虛擬機器器」
進入系統後,檢視ip,修改/opt/zookeeper/zkData/myid中的數值為2
還需要注意目錄中叢集的ip哦是否一致
第三臺伺服器zk03,重複上面的步驟
每臺伺服器的防火牆必須關閉
systemctl stop firewalld.service # 關閉叢集
systemctl status firewalld.service #檢視狀態
啟動第1臺
需要進入到zookeeper的bin 目錄
[root@localhost bin]# ./zkServer.sh start
[root@localhost bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Error contacting service. It is probably not running.
注意:因為沒有超過半數以上的伺服器,所以叢集失敗 (防火牆沒有關閉也會導致失敗)
[root@localhost bin]# ./zkCli.sh
help
ls /
ls -s /
- cZxid:建立節點的事務
- 每次修改ZooKeeper狀態都會收到一個zxid形式的時間戳,也就是ZooKeeper事務ID。
- 事務ID是ZooKeeper中所有修改總的次序。
- 每個修改都有唯一的zxid,如果zxid1小於zxid2,那麼zxid1在zxid2之前發生。
- ctime:被建立的毫秒數(從1970年開始)
- mZxid:最後更新的事務zxid
- mtime:最後修改的毫秒數(從1970年開始)
- pZxid:最後更新的子節點zxid
- cversion:建立版本號,子節點修改次數
- dataVersion:資料變化版本號
- aclVersion:許可權版本號
- ephemeralOwner:如果是臨時節點,這個是znode擁有者的session id。如果不是臨時節>點
則是0。- dataLength:資料長度
- numChildren:子節點數
create /china
create /usa
create /ru "pujing"
create /japan/Tokyo "hot"
get /japan/Tokyo
建立成功之後,quit退出使用者端,重新連線,短暫的節點消失
create -e /uk
ls /
quit
ls /
create -s /ru/city # 執行三次
ls /ru
[city0000000000, city0000000001, city0000000002]
set /japan/Tokyo "too hot"
監聽 節點的值變化 或 子節點變化(路徑變化)
addWatch /usa
set /usa "telangpu"
WatchedEvent state:SyncConnected type:NodeDataChanged path:/usa
create /usa/NewYork
delete /usa/NewYork
遞迴刪除節點 (非空節點,節點下有子節點)
不僅刪除/ru,而且/ru下的所有子節點也隨之刪除
deleteall /ru