ZooKeeper 叢集搭建和使用
阿新 • • 發佈:2018-12-21
ZooKeeper 叢集搭建
1,ZooKeeper 叢集搭建須知
- 節點數奇數臺
2,下載安裝包
3,上傳並解壓
- 解壓:tar -zxvf zookeeper-3.4.10.tar.gz
4,修改配置檔案zoo.cfg
- 進入 ZOOKEEPER_HOME/conf 目錄下,複製樣例配置檔案zoo_sample.cfg,命名為zoo.cfg
複製命令:cp zoo_sample.cfg zoo.cfg - 編輯配置檔案zoo.cfg
5,分發到其他伺服器
[[email protected] software]$ scp -r zookeeper-3.4.10 [email protected] :$PWD
[[email protected] software]$ scp -r zookeeper-3.4.10 [email protected]:$PWD
6,新建dataDir目錄
- 在各個 ZooKeeper 伺服器節點新建/home/shiny/zkdata
zoo.cfg中配置的dataDir - 建好之後,在裡面新建一個檔案,檔名叫 myid,裡面存放的各個伺服器節點對應的 id
就是 server.1=hadoop01:2888:3888 當中的 id
7,配置環境變數(所有 ZooKeeper 節點)
vim /home/theone/.bash_profile 新增如下程式碼配置環境變數: export ZOOKEEPER_HOME=/home/theone/Desktop/software/zookeeper-3.4.10 export PATH=$PATH:$ZOOKEEPER_HOME/bin 執行命令讓檔案立即生效: source /home/theone/.bash_profile
8,啟動 ZooKeeper
-
各個 ZooKeeper 伺服器節點使用啟動命令
zkServer.sh start
-
檢查程序和角色
程序:QuorumPeerMain ,使用命令:jps 角色:leader or follower,使用命令:zkServer.sh status
ZooKeeper 叢集使用
1, 連線 ZooKeeper 伺服器
-
(1)連線本機的 ZooKeeper 伺服器
進入 ZooKeeper 命令列客戶端,使用命令:[[email protected] ~]$ zkCli.sh
-
(2)連線其他的 ZooKeeper 伺服器
[[email protected] ~]$ zkCli.sh -server hadoop02:2181
2,ZooKeeper Cli 常用命令
-
1,幫助命令:help
-
2,檢視ZNode節點列表 (命令:ls path和 ls2 path)
ls path [watch] #顯示節點列表 ls2 path [watch] #不但顯示節點列表,還顯示更新次數等資料 ![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20181114192811715.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RoZW9uZV8x,size_16,color_FFFFFF,t_70)
path表示的是指定資料節點的節點路徑
-
3,建立 ZNode 節點
create [-s] [-e] path data acl
-s 或-e 分別指定節點特性,順序或臨時節點,若不指定,則表示持久節點。
data代表節點的資料內容。
acl用來進行許可權控制,預設情況下,不做任何許可權控制。建立一個新的 ZNode 節點“zk”以及與它關聯的字串“myData”如圖:
-
4,建立臨時ZNode節點
命令:create -e path data
關閉zk連線,重新進入,臨時節點消失 -
5,建立順序ZNode節點
命令:create -s path data
-
6,獲取ZNode資料
get path #(得到節點關聯的字串和屬性資訊)
-
7,設定ZNode資料
set path data [version] #(設定/修改節點的關聯字串)
-
8,監聽ZNode事件
-
1,監聽目錄結構
ls path [watch]
-
2,監聽資料內容
get path [watch]
-
-
9,刪除ZNode節點
delete path 或者 rmr path
ZNode 資料資訊欄位解釋
資料資訊欄位 | 解釋 |
---|---|
cZxid | 節點建立的時候的 zxid,用來為選舉leader服務的 |
ctime | 節點建立的時間 |
mZxid | 節點最新一次修改時的 zxid,與子節點的修改無關 |
mtime | 節點最新一次修改時的時間 |
pZxid | 子節點最近一次建立/刪除對應的 zxid, 和子節點修改無關, 和孫子節點無關 |
cversion | 子節點的更新次數 |
dataVersion | 節點資料的更新次數 |
aclVersion | 節點ACL(授權資訊)的更新次數 |
dataLength | 節點資料的位元組數 |
numChildren | 子節點個數,不包含孫子節點 |
- ephemeralOwner : 如果該節點為 ephemeral 節點, 該值表示與該節點繫結的 session id, 如果該節點不是 ephemeral 節點, 該值為 0