搭建zookeeper集群(偽集群)

  1. jdk環境

  2. 上傳zk壓縮包

  3. 解壓縮

  4. 複製三份
    mkdir /usr/local/zk_cluster
    cp -r zookeeper-3.4.6 /usr/local/zk_cluster/zookeeper01

  5. 在每個zookeeper目錄下創建一個data目錄。

  6. 在data目錄下創建一個myid文件,文件名就叫做「myid」。內容就是每個實例的id。例如1、2、3
    echo 1 >> myid
    cat myid

  7. 修改配置文件。把conf目錄下的zoo_sample.cfg文件改名為zoo.cfg

    # 修改以下配置
    # 第5步創建的data目錄路徑
    dataDir=
    # 端口號默認2181 三個zk節點端口要避免衝突
    clienPort=
    # 本機IP:客戶端端口:服務端端口
    servier.1=192.168.25.130:2881:3881
    servier.2=192.168.25.130:2882:3882
    servier.3=192.168.25.130:2883:3883
    
  8. 啟動每個zookeeper實例。

    bin/zkServer.sh start
    
  9. 查看zookeeper的狀態:
    bin/zkServer.sh status
    ./zKCli.sh -server 127.0.0.1:2181 # 連接客戶端

  • 顯示根目錄下、文件: ls / 使用 ls 命令來查看當前 ZooKeeper 中所包含的內容
  • 顯示根目錄下、文件: ls2 / 查看當前節點數據並能看到更新次數等數據
  • 創建文件,並設置初始內容: create /zk “test” 創建一個新的 znode節點「 zk 」以及與它關聯的字符串 [-e] [-s] 【-e 零時節點】 【-s 順序節點】
  • 獲取文件內容: get /zk 確認 znode 是否包含我們所創建的字符串 [watch]【watch 監聽】
  • 修改文件內容: set /zk “zkbak” 對 zk 所關聯的字符串進行設置
  • 刪除文件: delete /zk 將剛才創建的 znode 刪除,如果存在子節點刪除失敗
  • 遞歸刪除:rmr /zk將剛才創建的 znode 刪除,子節點同時刪除
  • 退出客戶端: quit
  • 幫助命令: help

注意

zookeeper最近的版本中有個內嵌的管理控制台是通過jetty啟動,也會佔用8080 端口。
通過查看zookeeper的官方文檔,發現有3種解決途徑:

(1).刪除jetty。
(2)修改端口。
修改方法的方法有兩種,一種是在啟動腳本中增加 -Dzookeeper.admin.serverPort=你的端口號.一種是在zoo.cfg中增加admin.serverPort=沒有被佔用的端口號
(3)停用這個服務,在啟動腳本中增加"-Dzookeeper.admin.enableServer=false"