1、下載解壓
2、配置環境變數:vi ~/.bashrc 或者 vi /etc/profile
[hadoopuser@Linux01 ~]$ vi ~/.bashrc
# zookeeper cdh5
export ZOOKEEPER_HOME=/home/hadoopuser/zookeeper-3.4.5-cdh5.6.0
export PATH=$PATH:$ZOOKEEPER_HOME/bin
[hadoopuser@Linux01 ~]$ source ~/.bashrc #生效
3、修改日誌輸出
[hadoopuser@Linux01 ~]$ vi $ZOOKEEPER_HOME/libexec/zkEnv.sh
#3.4.8非CDH版本的位置是:bin/zkEnv.sh
56行: 找到如下位置修改語句:ZOO_LOG_DIR="$ZOOKEEPER_HOME/logs"
4、修改配置檔案
[hadoopuser@Linux01 ~]$ vi $ZOOKEEPER_HOME/conf/zoo.cfg
# zookeeper
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoopuser/zookeeper-3.4.5-cdh5.6.0/data
clientPort=2181
# cluster
server.1=Zookeeper-01:2888:3888
server.2=Zookeeper-02:2888:3888
server.3=Zookeeper-03:2888:3888
5、設定myid
(1)Zookeeper-01:
mkdir $ZOOKEEPER_HOME/data
echo 1 > $ZOOKEEPER_HOME/data/myid
(2)Zookeeper -02:
mkdir $ZOOKEEPER_HOME/data
echo 2 > $ZOOKEEPER_HOME/data/myid
(3)Zookeeper -03:
mkdir $ZOOKEEPER_HOME/data
echo 3 > $ZOOKEEPER_HOME/data/myid
6、各結點啟動:
[hadoopuser@Linux01 ~]$ zkServer.sh start
7、驗證
[hadoopuser@Linux01 ~]$ jps
3051 Jps
2829 QuorumPeerMain
8、狀態
[hadoopuser@Linux01 ~]$ zkServer.sh status
JMX enabled by default
Using config: /home/zero/zookeeper/zookeeper-3.4.5-cdh5.0.1/bin/../conf/zoo.cfg
Mode: follower
9、附錄zoo.cfg各配置項說明
屬性 |
意義 |
tickTime |
時間單元,心跳和最低會話超時時間為tickTime的兩倍 |
dataDir |
資料存放位置,存放記憶體快照和事務更新日誌 |
clientPort |
客戶端訪問埠 |
initLimit |
配 置 Zookeeper 接受客戶端(這裡所說的客戶端不是使用者連線 Zookeeper伺服器的客戶端,而是 Zookeeper 伺服器叢集中連線到 Leader 的 Follower 伺服器)初始化連線時最長能忍受多少個心跳時間間隔數。當已經超過 10 個心跳的時間(也就是 tickTime)長度後 Zookeeper 伺服器還沒有收到客戶端的返回資訊,那麼表明這個客戶端連線失敗。總的時間長度就是 5*2000=10 秒。 |
syncLimit |
這個配置項標識 Leader 與 Follower 之間傳送訊息,請求和應答時間長度,最長不能超過多少個 |
server.id=host:port:port server.A=B:C:D |
叢集結點列表: A :是一個數字,表示這個是第幾號伺服器; B :是這個伺服器的 ip 地址; C :表示的是這個伺服器與叢集中的 Leader 伺服器交換資訊的埠; D :表示的是萬一叢集中的 Leader 伺服器掛了,需要一個埠來重新進行選舉,選出一個新的 Leader,而這個埠就是用來執行選舉時伺服器相互通訊的埠。如果是偽叢集的配置方式,由於 B 都是一樣,所以不同的 Zookeeper 例項通訊埠號不能一樣,所以要給它們分配不同的埠號。 |
10、常用命令
10.1 啟動ZK服務: bin/zkServer.sh start 10.2 檢視ZK服務狀態: bin/zkServer.sh status 10.3 停止ZK服務: bin/zkServer.sh stop 10.4 重啟ZK服務: bin/zkServer.sh restart 10.5 連線伺服器: zkCli.sh -server 127.0.0.1:2181 10.6 檢視根目錄: ls / 10.7 建立 testnode節點,關聯字串"zz": create /zk/testnode "zz" 10.8 檢視節點內容: get /zk/testnode 10.9 設定節點內容: set /zk/testnode abc 10.0 刪除節點: delete /zk/testnode