1. 程式人生 > >ZooKeeper 叢集搭建和使用

ZooKeeper 叢集搭建和使用

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