zookeeper 集群安裝和配置

dd2d 9年前發布 | 22K 次閱讀 分布式/云計算/大數據 ZooKeeper

zookeeper 集群安裝和配置


先主要介紹一下zoo.cfg的基本配置。

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data
dataLogDir=/datalog
clientPort=2181
electionAlg=3
server.1=127.0.0.1:20881:30881
server.2=127.0.0.1:20882:30882
server.3=127.0.0.1:20883:30883

配置的基本信息

tickTime=2000:毫秒級的基本時間單位,其他時間如心跳/超時等都為該單位時間的整數倍;

initLimit=10:tickTime的倍數,表示leader選舉結束后,followers與leader同步需要的時間,leader的數據非常多時或followers比較多,則該值應該適當大一些;

syncLimit=5:tickTime的倍數,表示follower和observer與leader交互時的最大等待時間,只不過是在與leader同步完畢之后,正常請求轉發或ping等消息交互時的超時時間。

clientPort=2181:監聽客戶端連接的服務端口

electionAlg=3:領導選舉算法,默認3。(No Java system property)

dataDir=/data:內存數據庫快照地址,事務日志地址(除非由 dataLogDir 另行指定)

dataLogDir=/datalog:事務日志目錄,可以使用專用的設備,以避免事務日志與快照之間的競爭。

server.x=[hostname]:nnnnn[:nnnnn], etc

集群配置中,在dataDir目錄下必須有一個myid文件,其中的值就是數字x,范圍是1-255。第一個nnnnn是與leader通訊使用,第二個nnnnn是選舉leader使用,electionAlg等于0時不需要此參數。(No Java system property)


在一臺機器上開啟zookeeper的三個實例,其實就是一個偽集群。集群中的三個配置為:

zookeeper實例一:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/zookeeper-3.4.6-1/data
dataLogDir=/zookeeper-3.4.6-1/datalog
clientPort=2181
electionAlg=3
server.1=127.0.0.1:20881:30881
server.2=127.0.0.1:20882:30882
server.3=127.0.0.1:20883:30883

zookeeper實例二:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/zookeeper-3.4.6-2/data
dataLogDir=/zookeeper-3.4.6-2/datalog
clientPort=2182
electionAlg=3
server.1=127.0.0.1:20881:30881
server.2=127.0.0.1:20882:30882
server.3=127.0.0.1:20883:30883

zookeeper實例三:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/zookeeper-3.4.6-3/data
dataLogDir=/zookeeper-3.4.6-3/datalog
clientPort=2183
electionAlg=3
server.1=127.0.0.1:20881:30881
server.2=127.0.0.1:20882:30882
server.3=127.0.0.1:20883:30883

其中,

dataDir=/zookeeper-3.4.6-1/data
dataLogDir=/zookeeper-3.4.6-1/datalog

該目錄為其實例所在的目錄下。

最后別忘了在dataDir配置的目錄下建立myid文件。好了,集群基本就配置完了。


最后啟動每個zookeeper實例。

如下圖三個zookeeper實例啟動后的狀態:

zookeeper 集群安裝和配置

zookeeper 集群安裝和配置

zookeeper 集群安裝和配置


打開任何一個客戶端,建立znode,如下,

[zk: localhost:2181(CONNECTED) 3] create /zk_test mydata
Created /zk_test
[zk: localhost:2181(CONNECTED) 4] get /zk_test
mydata
cZxid = 0x600000004
ctime = Mon Mar 16 17:51:58 CST 2015
mZxid = 0x600000004
mtime = Mon Mar 16 17:51:58 CST 2015
pZxid = 0x600000004
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0
[zk: localhost:2181(CONNECTED) 5]


打開另一個客戶端,如下,

[zk: localhost:2181(CONNECTED) 1] get /zk_test
mydata
cZxid = 0x600000004
ctime = Mon Mar 16 17:51:58 CST 2015
mZxid = 0x600000004
mtime = Mon Mar 16 17:51:58 CST 2015
pZxid = 0x600000004
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0
[zk: localhost:2181(CONNECTED) 2] ls /
[mynode, zookeeper, zk_test]
[zk: localhost:2181(CONNECTED) 3]

一個集群就搭建好了。

參考:http://ibruce.info/2014/10/23/zookeeper/

http://greemranqq.iteye.com/blog/2171449

http://www.cnblogs.com/yuyijq/p/3438829.html


==================================END==================================


 本文由用戶 dd2d 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!