ZooKeeper集群環(huán)境安裝與配置
ZooKeeper版本:3.4.5
約定:3臺(tái)虛擬機(jī)
前提:需要安裝JDK,關(guān)于Linux環(huán)境JDK安裝配置參考我的另一帖Linux環(huán)境安裝卸載JDK以及安裝Tomcat和發(fā)布Java的web程序
ZooKeeper官網(wǎng):http://zookeeper.apache.org/
1.下載解壓
# wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz
# tar zxvf zookeeper-3.4.5.tar.gz
# cd zookeeper-3.4.5
2.配置
1).建立數(shù)據(jù)目錄
# mkdir data
2).編輯配置文件
# cd /usr/zookeeper-3.4.5/conf
conf目錄下修改文件名?zoo_sample.cfg?改為?zoo.cfg?
#?mv?zoo_sample.cfg?zoo.cfg
# vim ./conf/zoo.cfg
#dataDir=/tmp/zookeeper dataDir=/usr/zookeeper-3.4.5/data clientPort=2181 initLimit=10 syncLimit=5 tickTime=2000 server.1=192.168.1.1:2888:3888 server.2=192.168.1.2:2888:3888 server.3=192.168.1.3:2888:3888
注意千萬(wàn)不要把IP寫錯(cuò)了,不然啟動(dòng)后會(huì)報(bào)奇怪的錯(cuò)誤!
快照是需要的#mkdir?? data
如果需要事務(wù)#mkdir?? datalog
新建配置文件zoo.cfg,保存在conf子目錄下,寫入以下內(nèi)容:
tickTime=# Zookeeper服務(wù)器心跳時(shí)間,單位毫秒
dataDir= # 數(shù)據(jù)持久化路徑
clientPort=# 連接端口
initLimit=# 投票選舉新leader的初始化時(shí)間。
syncLimit=# Leader與Follower之間的最大響應(yīng)時(shí)間單位,響應(yīng)超過(guò)syncLimit*tickTime,Leader認(rèn)為Follwer掛掉,從服務(wù)器列表中刪除Follwer
dataLogDir=# 日志保存路徑? 這個(gè)要自己新建,具體目錄根據(jù)自己的實(shí)際情況為準(zhǔn)!
3).新增myid文件
# cd /usr/zookeeper-3.4.5/data
在data目錄下創(chuàng)建文件,文件名為“myid”, 編輯該“myid”文件,并在對(duì)應(yīng)的IP的機(jī)器上輸入對(duì)應(yīng)的編號(hào)。
如在192.168.1.1上,“myid”文件內(nèi)容就是1,在192.168.1.2上,內(nèi)容就是2,在192.168.1.3上,內(nèi)容就是3
3.修改防火墻
如果是用iptable的話,在/etc/sysconfig/iptables中加入ZooKeeper的端口:
?-A?RH-Firewall-1-INPUT?-m?state?--state?NEW?-m?tcp?-p?tcp?--dport?2181?–j?ACCEPT ?-A?RH-Firewall-1-INPUT?-m?state?--state?NEW?-m?tcp?-p?tcp?--dport?2888?–j?ACCEPT ?-A?RH-Firewall-1-INPUT?-m?state?--state?NEW?-m?tcp?-p?tcp?--dport?3888?–j?ACCEPT
?執(zhí)行防火墻重啟命令:
# service iptables restart
4.啟動(dòng)ZooKeeper
啟動(dòng)
# /usr/zookeeper-3.4.5/bin/zkServer.sh start
[root@localhost conf]# /usr/zookeeper-3.4.5/bin/zkServer.sh start ?
JMX enabled by default
Using config: /usr/zookeeper-3.4.5/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
停止
# /usr/zookeeper-3.4.5/bin/zkServer.sh stop
重啟
# /usr/zookeeper-3.4.5/bin/zkServer.sh restart
5.檢查狀態(tài)
# /usr/zookeeper-3.4.5/bin/zkServer.sh status
可能需要安裝nc包
# yum install nc
ZooKeeper會(huì)自動(dòng)選出Leader,一旦Leader掛了會(huì)選出新的Leader。
Leader/Follower會(huì)通過(guò)選舉算法進(jìn)行選擇。
6.客戶端登陸
# /usr/zookeeper-3.4.5/bin/zkCli.sh -server 127.0.0.1:2181
??