Centos7 Zookeeper 集群安裝
阿新 • • 發佈:2017-12-19
設置 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/zkdatalogclientPort=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 集群安裝