Centos7 Zookeeper 集群安裝


1:安裝java 環境

yum -y install java-1.8.0-openjdk*

2:zookeeper 安裝 (官網 http://www.apache.org/dyn/closer.cgi/zookeeper/

2.1 目錄創建 

自定義文件目錄(根據實際情況定義)

mkdir /opt/zookeeper                 #項目目錄
mkdir -p /data/zookeeper/zkdata      #存放快照日志             
mkdir -p /data/zookeeper/zkdatalog   #存放事物日志

2.2:安裝

這里示例安裝的是3.4.9版本

cd /opt/zookeeper/

wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

#解壓軟件
tar -zxvf zookeeper-3.4.9.tar.gz

2.3:創建

cp /opt/zookeeper/zookeeper-3.4.9/conf/zoo_sample.cfg    /opt/zookeeper/zookeeper-3.4.9/conf/zoo.cfg

修改配置 vi /opt/zookeeper/zookeeper-3.4.9/conf/zoo.cfg

tickTime=2000                                         
initLimit=10                                            
syncLimit=5
dataDir=/data/zookeeper/zkdata
dataLogDir=/data/zookeeper/zkdatalog
clientPort=9950
server.1=10.253.9.134:9951:9952
server.2=10.253.9.137:9951:9952
server.3=10.253.9.138:9951:9952

#server.1 這個1是服務器的標識也可以是其他的數字, 表示這個是第幾號服務器,用來標識服務器,這個標識要寫到快照目錄下面myid文件里
#192.168.7.107為集群里的IP地址,第一個端口是master和slave之間的通信端口,默認是2888,第二個端口是leader選舉的端口,集群剛啟動的時候選舉或者leader掛掉之后進行新的選舉的端口默認是3888

 

主要配置解釋

#tickTime:這個時間是作為 Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。
#initLimit:
這個配置項是用來配置 Zookeeper 接受客戶端(這里所說的客戶端不是用戶連接 Zookeeper 服務器的客戶端,而是 Zookeeper 服務器集群中連接到 Leader 的 Follower 服務器)初始化連接時最長能忍受多少個心跳時間間隔數。當已經超過 5個心跳的時間(也就是 tickTime)長度后 Zookeeper 服務器還沒有收到客戶端的返回信息,那么表明這個客戶端連接失敗。總的時間長度就是 5*2000=10#syncLimit:
這個配置項標識 Leader 與Follower 之間發送消息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度,總的時間長度就是5*2000=10秒
#dataDir:快照日志的存儲路徑
#dataLogDir:事物日志的存儲路徑,如果不配置這個那么事物日志會默認存儲到dataDir制定的目錄,這樣會嚴重影響zk的性能,當zk吞吐量較大的時候,產生的事物日志、快照日志太多
#clientPort:
這個端口就是客戶端連接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。修改他的端口改大點 ,默認2181

 

2.4:創建myid文件 (這里集群實例安裝三台)

#server1
echo "1" > /data/zookeeper/zkdata/myid
#server2 echo "2" > /data/zookeeper/zkdata/myid
#server3 echo "3" > /data/zookeeper/zkdata/myid

3:運行服務

cd /opt/zookeeper/zookeeper-3.4.9/bin

./zkServer.sh start | restart  | stop             #啟動服務(3台都需要操作)

./zkServer.sh status                      #檢查服務器狀態

jps                                               #查看zookper進程是否啟動  

4:自定義清理腳本

vi cleanjob.sh 

#!/bin/bash
#snapshot file dir
dataDir=/data/zookeeper/zkdata/version-2
#tran log dir
dataLogDir=/data/zookeeper/zkdatalog/version-2

#Leave 66 files
count=66
count=$[$count+1]
ls -t $dataLogDir/log.* | tail -n +$count | xargs rm -f
ls -t $dataDir/snapshot.* | tail -n +$count | xargs rm -f
 #以上這個腳本定義了刪除對應兩個目錄中的文件,保留最新的66個文件,可以將他寫到crontab中,設置為每天凌晨2點執行一次就可以了。 #zk log dir del the zookeeper log
#logDir=
#ls -t $logDir/zookeeper.log.* | tail -n +$count | xargs rm -f

給腳本加上執行全選 

chmod +x cleanjob.sh

crontab -e 添加執行計划

0 2 * * * /opt/zookeeper/zookeeper-3.4.9/cleanjob.sh   #每天凌晨2點執行

客戶端

./zkCli.sh -server 127.0.0.1:9950            #連接到zookeeper服務器 

1. 顯示根目錄下、文件: ls / 使用 ls 命令來查看當前 ZooKeeper 中所包含的內容
2. 顯示根目錄下、文件: ls2 / 查看當前節點數據並能看到更新次數等數據
3. 創建文件,並設置初始內容: create /zk "test" 創建一個新的 znode節點“ zk ”以及與它關聯的字符串
4. 獲取文件內容: get /zk 確認 znode 是否包含我們所創建的字符串
5. 修改文件內容: set /zk "zkbak" 對 zk 所關聯的字符串進行設置
6. 刪除文件: delete /zk 將剛才創建的 znode 刪除
   rmr /abc   #強制刪除節點

7. 退出客戶端: quit
8. 幫助命令: help

查看kafka的broker信息 

get /brokers/ids/0

get /brokers/topics/test1/partitions/0
其他
Zookper 添加新節點
參考: https://gist.github.com/miketheman/6057930
 
最后本部分參考 http://www.cnblogs.com/luotianshuai/p/5206662.html 整理了一下方便自己做入門安裝筆記使用。

 


免責聲明!

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



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