安裝準備
安裝JDK環境,具體安裝步驟請戳我
開始安裝
注:因root用戶權限過大,本次搭建zookeeper全部使用普通用戶hadoop完成
首先通過wget命令獲取tgz壓縮包,也可以通過軟件由Windows下載上傳到虛擬機
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
然後解壓到自己想要保存的文件夾(這裏保存到之前創建的根目錄下的soft文件夾)
tar -zxvf zookeeper-3.4.10.tar.gz -C /soft
cd到安裝目錄中的conf文件夾
cd /soft/zookeeper-3.4.10/conf
複製conf文件夾下的zoo_sample.cfg文件,並改名爲zoo.cfg.編輯zoo.cfg文件
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
修改內容如圖所示
內容註解:
tickTime : Zookeeper的時間單元.Zookeeper中所有時間都是以這個時間單元的整數倍去配置的
initLimit : 當需要從Leader同步最新數據時,Leader允許在initLimit * tickTime 的時間內完成同步.如果需要同步的數據量很大,可以將這個值設置的大一些
syncLimit : 表示Follower和Observer與Leader交互時的最大等待時間.
dataDir : 用於存放內存數據快照的文件夾,同時配置集羣的myid也存放在此文件夾下
dataLogDir : 用於存放數據日誌目錄
clientPort : 服務的監聽端口
注:以上只列舉了圖片中出現的屬性,其餘屬性可參考此鏈接
最後添加的三行server.A=B:C:D
A是一個數字,表示這個是第幾號服務器
B是這臺服務器的IP地址(如果使用主機名則需要配置/etc/Hosts文件)
C端口,用來供集羣成員之間交換數據
D端口,用來在集羣啓動或leader崩潰時,選舉新的leader
創建ID標識:(這步操作三臺虛擬機都需要進行)
手動創建zoo.cfg文件中設置的dataDir文件夾和dataLogDir文件夾
在dataDir文件目錄中創建文件myid,myid中寫入在配置文件中設置的服務器ID
配置環境變量:
因爲我用的是Hadoop用戶,所以並沒有把他寫到系統環境變量中,而是寫到了用戶環境變量中,如果想寫到系統變量中,則需要寫到/etc/profile文件中
echo 'export ZOOKEEPER_HOME=/soft/zookeeper-3.4.10' >> ~/.bashrc
echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> ~/.bashrc
分發配置:
爲了方便,直接將.bashrc文件和zookeeper的安裝目錄直接通過scp命令拷貝到其他兩臺虛擬機上
scp ~/.bashrc hadoop@node1:/home/hadoop/.bashrc
scp ~/.bashrc hadoop@node2:/home/hadoop/.bashrc
scp -r /soft/zookeeper/ hadoop@node1:/soft/zookeeper/
scp -r /soft/zookeeper/ hadoop@node2:/soft/zookeeper/
然後在三臺虛擬機上運行source命令,使環境變量生效
source ~/.bashrc
啓動檢測:
通過zookeeper/bin目錄下的zkServer.sh來啓動,關閉,重啓服務
#啓動zk服務
zkServer.sh start
#查看zk狀態
zkServer.sh status
最終結果如圖所示:
新手發帖,如果文章中有錯誤或是更好的建議,請在評論中指出,謝謝!