Zookeeper環境搭建及簡單練習

weixin_34320159發表於2018-01-01

之前簡單介紹了Zookeeper,接下來搭建一個Zookeeper的叢集環境

本叢集使用三個節點,網路環境及jdk安裝不再贅述,直接從環境搭建開始

環境搭建

接下來操作在hadoop使用者下進行

1. 解壓 tar -xzvf zookeeper-3.4.10.tar.gz

2. 由於伺服器上不需要其他東西,因此刪除掉.txt及.xml檔案和doc目錄

3. 進入安裝目錄下的conf目錄,複製zoo_sample.cfg並重新命名為zoo.cfg    cp zoo_sample.cfg zoo.cfg

4. 修改zoo.cfg:

修改快照檔案目錄:

dataDir=/usr/local/zookeeper/data

新增日誌檔案目錄:

dataLogDir=/usr/local/zookeeper/log

server.1=node01:2888:3888 (主機名, 心跳埠、資料埠)

server.2=node02:2888:3888

server.3=node03:2888:3888

5. 在安裝目錄下建立data和log目錄

6. 在data目錄下建立myid檔案  touch myid,myid的內容為從1開始的數字,對應各節點的cfg配置

7. 切換到root使用者,建立軟連結    ln -s /home/hadoop/zookeeper-3.4.10 /usr/local/zookeeper

單節點配置完成,把配好的安裝目錄複製到其他節點  scp -r /home/hadoop/zookeeper-3.4.10 hadoop@node02:/home/hadoop

分別在對應的節點建立軟連結及修改myid,修改環境變數(root使用者)

vim /etc/profile

增加export ZOOKEEPER_HOME=/usr/local/zookeeper,在path中追加ZOOKEEPER_HOME指向Bin,並編譯

配置完成,分別啟動各節點的zookeeper

/usr/local/zookeeper/bin/zkServer.sh start

檢查狀態:/usr/local/zookeeper/bin/zkServer.sh status

其中有follower,有leader為啟動成功

簡單練習

zookeeper登入可以使用bin目錄下的zkCli.sh

執行./zkCli.sh

help命令可檢視zookeeper所提供的一些命令


7789466-d9cf64d198e75edb.jpg
help命令截圖

建立節點: create /zktest 123即可在根目錄下建立zktest並在節點中存123資料


7789466-76dc6c283d9c4e7c.jpg
建立節點並檢視

檢視節點資料: get /zktest


7789466-3af2f15a7dd6bd1c.jpg
檢視節點資料

顯示的包括資料內容、版本號、建立時間等詳細資訊

建立監聽事件(監聽資料變化) get /zktest watch

在另外節點連線zookeeper,修改節點資料:set /zktest 3456

在本節點會看到監聽事件


7789466-b68da530456816e6.jpg
建立資料變化監聽及資料變化後的顯示

可看到在最後出現監聽變化,但注意,監聽只一次有效,再次修改,這個監聽就無效了

建立子節點,可以在之前測試的zktest節點下繼續建立子節點,create /zktest/s1 111


7789466-f307398af2c4b4c3.jpg
建立子節點

順序子節點的建立為create -s /zktest/ss1 111


7789466-eedff37800e86f0b.jpg
建立順序子節點

可以看到在後邊會自動追加若干個0並接1,繼續執行上述create操作,則繼續2,3...

建立臨時節點create -e /zktest/es1 111,臨時節點在建立節點的客戶端斷開連線時會自動刪除,可以通過監聽節點實現一些功能(ls監聽)

刪除節點:delete 節點路徑,但這樣不能刪除有子節點的節點,要刪除待子節點的節點,可用rmr命令

zookeeper還可對版本進行管理,set命令後可接版本號,如果版本號和當前版本號不一致,則資料不會更新,一致的話會更新資料並對版本號加一

zookeeper常用四字命令

四字命令在telnet 連線使用

conf檢視zookeeper執行時的配置資訊


7789466-a7a5d3d2c520bf83.jpg
四字狀態conf

cons 輸出當前伺服器上所有客戶端的連線資訊

在node01 l連線node02 zkCli.sh -server node02:2181,使用cons檢視:


7789466-96a3d602f89569d4.jpg
cons檢視連線狀態,可看到192.168.47.10的連線

stat 輸出Zookeeper執行時狀態資訊


7789466-0b05d5125f253b14.jpg
stat命令

srvr 與stat命令功能一致,但不會輸出客戶端的連線情況,僅輸出伺服器自身的資訊

wchs 輸出當前伺服器管理的Watcher的概要資訊

wchc 輸出當前伺服器管理的Watcher的詳細資訊

mntr 輸出比stat命令更詳盡的統計資訊

envi 輸出Zookeeper所在伺服器執行時的環境資訊

可以基於zookeeper的上述操作根據不同需求搭建適宜的系統,這些待以後研究,目前的zookeeper主要用於hadoop2.0的搭建及後續環境搭建

相關文章