1. 實驗環(huán)境Suse Eneterprise Server 11
IP地址:A: 192.168.1.180? ? ?B:192.168.1.44? ? ? C:192.168.1.215
軟件源:http://zookeeper.apache.org/releases.html#download
2.配置集群?
2.1 zookeeper 簡介,實踐用途可以在apache官網(wǎng)查詢,不做過多介紹。個人習(xí)慣把軟件安裝在/usr/local/xxx?
2.2 安全問題,本人虛擬機只能內(nèi)網(wǎng)訪問比較安全,所以關(guān)閉了防火墻,且僅使用root權(quán)限,有這兩個方面困擾的同學(xué)只能自行想辦法解決,本文不提供解決方案。
解壓命令:/usr/local #?tar zxvf zookeeper-3.4.11.tar.gz
2.3 原始配置文件:集群發(fā)現(xiàn)的關(guān)鍵。解壓之后的zookeeper-3.4.11/conf/目錄下會自帶一個原始的 zoo_sample.cfg 重命名一下 mv zoo_sample.cfg zoo.cfg?
原始的config 文件只有5條基本配置(原始配置文件里有對每條配置的解釋),更多配置請參考官網(wǎng)。
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181
2.4 修改配置文件,多數(shù)配置是允許自定義的,如果客戶端端口號與某些軟件沖突可以改為其他的端口。但是dataDir 建議是要改的/tmp 目錄絕對不是一個好的選擇,至于原因沒做深入調(diào)查。更改之后的zoo.cfg如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper
clientPort=2181
server.1=192.168.1.180:2888:3888
server.2=192.168.1.215:2888:3888
server.3=192.168.1.44:2888:3888? ? //ip? 可以換成 主機別名,但是需要預(yù)配置
為了方便的使用: 我在根目錄下新建了一個data目錄,不僅可以用來存放zookeeper的數(shù)據(jù),還可以存放像redis數(shù)據(jù)文件之類的。
2.5 [ 配置環(huán)境變量 ] 該項可選,
export ZOO_HOME=/usr/local/zookeeper-3.4.11
export ZOO_LOG_DIR=$ZOO_HOME/logs
export PATH=$ZOO_HOME/bin:$PATH
2.6 配置節(jié)點ID,注意該ID一定要與配置文件里的保持一致,比如虛擬機A 在配置文件里寫的是server1 則A之下數(shù)據(jù)目錄下的myid 必須是1, 一定要保持B,C的配置文件中server 列表與A是一致的。
192.168.1.180:/data/zookeeper # ll
total 12
-rw-r--r-- 1 root root? ? 2 Dec? 4 19:58 myid
drwxr-xr-x 2 root root 4096 Dec? 4 20:01 version-2
-rw-r--r-- 1 root root? ? 4 Dec? 4 20:01 zookeeper_server.pid
192.168.1.180:/data/zookeeper # cat myid
1
3. 啟動
3.1啟動服務(wù),查看服務(wù)狀態(tài)
在A,B,C 節(jié)點下/usr/local/zookeeper-3.4.11/bin # ./zkServer.sh start 啟動zookeeper 服務(wù),只要保持大于一半的服務(wù)可以用則集群認(rèn)為狀態(tài)是正常的
/usr/local/zookeeper-3.4.11 # ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.11/bin/../conf/zoo.cfg
Mode: follower
3.2啟用客戶端/usr/local/zookeeper-3.4.11 # ./bin/zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]