ZooKeeper集群環(huán)境安裝與配置
ZooKeeper版本:3.4.5
約定:3臺虛擬機
前提:需要安裝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
注意千萬不要把IP寫錯了,不然啟動后會報奇怪的錯誤!
快照是需要的#mkdir?? data
如果需要事務(wù)#mkdir?? datalog
新建配置文件zoo.cfg,保存在conf子目錄下,寫入以下內(nèi)容:
tickTime=# Zookeeper服務(wù)器心跳時間,單位毫秒
dataDir= # 數(shù)據(jù)持久化路徑
clientPort=# 連接端口
initLimit=# 投票選舉新leader的初始化時間。
syncLimit=# Leader與Follower之間的最大響應(yīng)時間單位,響應(yīng)超過syncLimit*tickTime,Leader認為Follwer掛掉,從服務(wù)器列表中刪除Follwer
dataLogDir=# 日志保存路徑? 這個要自己新建,具體目錄根據(jù)自己的實際情況為準!
3).新增myid文件
# cd /usr/zookeeper-3.4.5/data
在data目錄下創(chuàng)建文件,文件名為“myid”, 編輯該“myid”文件,并在對應(yīng)的IP的機器上輸入對應(yīng)的編號。
如在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.啟動ZooKeeper
啟動
# /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會自動選出Leader,一旦Leader掛了會選出新的Leader。
Leader/Follower會通過選舉算法進行選擇。
6.客戶端登陸
# /usr/zookeeper-3.4.5/bin/zkCli.sh -server 127.0.0.1:2181
??