1. 程式人生 > >Centos7 Zookeeper 集群安裝

Centos7 Zookeeper 集群安裝

設置 bsp lean 客戶端 1=1 logs follow nta lower

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 整理了一下方便自己做入門安裝筆記使用。

Centos7 Zookeeper 集群安裝