zookeeper集群的搭建以及命令詳解


一、安裝jdk

  ①    :下載jdk ,下載地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html,下載完成之后使用tar 命令解壓;

  ②    :配置環境變量

   修改 /etc/profile

 vi  /etc /profile
#在末尾追加以下內容
export JAVA_HOME=/root/apps/jdk1.8.0_151
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

  ③    :source  /etc/profile

  ④    :檢測是否安裝成功

    java  -version

二、搭建zookeeper集群

  ①:下載zookeeper,下載地址http://mirror.bit.edu.cn/apache/zookeeper/

  ②:解壓  tar  -zxvf   zookeeper.tar.gz

  ③:修改zoo.cfg 

    cp  zooo_sample.cfg  zoo.cfg

    vi  zoo.cfg

dataDir= /tmp/zookeeper/data     //修改dataDir的目錄
#在zoo.cfg末尾添加以下內容 server.1=192.168.1.1:2888:3888 server.2=192.168.1.2:2888:3888 server.3=192.168.1.3:2888:3888

zoo.cfg配置文件詳解:

  clientPort:

    clientPort這個端口就是客戶端連接Zookeeper服務器的端口,Zookeeper會監聽這個端口接受客戶端的訪問請求;

  tickTime

    tickTime 是zookeeper中的基本時間單元,代表發送心跳的間隔時間,單位是毫秒;

  initLimit

    initLimit是用來配置 Zookeeper 接受客戶端(這里所說的客戶端不是用戶連接 Zookeeper 服務器的客戶端,而是 Zookeeper 服務器集群中連接到 Leader 的 Follower 服務器)初始化連接時最長能忍受多少個心跳時間間隔數。當已經超過5個心跳的時間(也就是 tickTime)長度后 Zookeeper 服務器還沒有收到客戶端的返回信息,那么表明這個客戶端和leader連接失敗。總的時間為:10*2000=20秒;

  ataDir

    dataDir是zookeeper持久化存放數據存放的目錄;.

  syncLimit

    Leader和Follower之間發送消息時,請求和應答的時間長度,最長不能超過多少個tickTime的時間長度,默認值為5,所以總的時間為5*2000=10秒;

  ④:分發zookeeper

    使用scp命令將配置好的zookeeper分發到server2  ,server3對應的目錄,如果沒有scp命令,使用  yum install openssl 安裝即可;

 scp /root/apps/zookeeper-3.4.14/  root@192.168.1.2:/root/apps/
 scp /root/apps/zookeeper-3.4.14/  root@192.168.1.3:/root/apps/

 分發完成之后分別在server1,server2,server3的/tmp/zookeeper/data中創建myid文件,然后分別寫入以下內容

       echo  1  > /tmp/zookeeper/data/myid

  echo  2  > /tmp/zookeeper/data/myid

  echo  3  > /tmp/zookeeper/data/myid

注意事項:192.168.1.1對應的是第一台server,所以在192..168.1.1這台server中輸入:echo  1  > /tmp/zookeeper/data/myid,其它同理;跟zoo.cfg配置文件必須相對應

  ⑥:啟動zookeeper集群:分別在server1s,server2,server3上執行以下命令  

 cd  /root/apps/zookeeper-3.4.14/bin/
 ./zkServer.sh start

如果使用CRT,可以在view  ===> Command Window勾選,然后在Command  Window中勾選Send Commands to All  Sessions,執行一次命令即可;

  ⑥:查看zookeeper集群的狀態
    ./zkServer.sh status    //兩個follower  一個leader即集群搭建成功;

三、關於zookeeper命令的介紹

①:連接zookeeper:./zkCli.sh   -server  1962.168.1.1 

②:使用--help查看幫助文檔

③:查看所有得節點:  ls  /

④:創建節點:create  /zkdemo  helloworld  (默認創建的是永久的節點,如果想要創建臨時的節點,可以使用 -e )

注意:同級節點必須唯一性,即在同一節點下不可能出現兩個同名的節點;臨時節點下不能創建子節點;

⑤:查看節點信息:  get   /zkdemo

節點信息詳解:  

  helloworld -- 節點的數據信息

  cZxid  -- cZxid指的是節點創建時的事務id. 不變.

  ctime -   節點的創建時間. 不變.

  mZxid  -- 節點最近一次修改的事務id. 包括對本節點數據的修改. 本節點acl的修改,子節點的增加刪除以及子節點acl的修改都不會影響到該值.

  mtime    -- 節點最近一次修改的時間.

  pZxid  -- 對子節點最近的一次修改, 包括子節點的增加刪除, 但是子節點的數據修改和acl權限控制,不會影響這個信息.

  cversion   -- 子節點的版本號, 對子節點的增加和刪除操作, 版本號都會加1.但是子節點的數據和acl修改不會影響這個信息.

  ataVersion    -- 數據版本.本節點的數據信息每被修改一次, 加1

  aclVersion   -- acl 版本號. acl指的是對改節點的訪問權限, 每更改一次就加1

  ephemeralOwner  -- ephemeral節點所屬的客戶端的sessionId. 如果是persist 節點, 則為0

  dataLength  -- 數據長度

  numChildren    -- 子節點的數量

⑥:修改節點信息:set  /zkdemo   zookeeper

  get  /zkdemo

⑦:刪除節點:

  delete  /zkdemo

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM