Zookeeper的安裝和使用
首先在Zookeeper官網下載最新版本,下載後解壓到使用者目錄下。
tar -zxvf zookeeper-3.4.8.tar.gz
重新命名conf目錄下zoo_sample.cfg檔案為zoo.cfg並且修改其中的配置項
initLimit=10 #預設值
syncLimit=5 #預設值
dataDir=/Users/umgsai/zookeeper/data
dataLogDir=/Users/umgsai/zookeeper/dataLog
server.1=172.24.51.28:2888:3888
其他配置項使用預設值即可。
172.24.51.28為當前機器的IP地址,也可以使用host檔案中配置的域名。
2888埠號是zookeeper服務之間通訊的埠。
3888埠是zookeeper與其他應用程式通訊的埠。
initLimit:配置zookeeper接收客戶端(這裡所說的客戶端不是使用者連線zookeeper伺服器的客戶端,而是指zookeeper伺服器叢集中連線到Leader的Follower伺服器)初始化連線時最長能忍受多少個心跳時間間隔數。當已經超過10個心跳時間長度後zookeeper伺服器還沒有收到客戶端的返回訊息,那麼表明這個客戶端連線失敗。總的時間長度就是5*2000=10秒。
syncLimit:配置Leader與Follower之間傳送訊息,請求和應答時間長度最長不能超過多少個ticketTime的時間長度,總的時間長度就是2*2000=4秒。
server.A=B:C: D 其中A是一個數字,表示這是第幾號伺服器。B是這臺伺服器的IP地址。C表示這臺伺服器與叢集中的Leader伺服器交換資訊的埠。D表示的是萬一叢集中的Leader伺服器掛了,需要一個埠來重新進行選舉,選出一個新的Leader,這個埠就是用來執行選舉時伺服器相互通訊的埠。如果是偽叢集的配置方式,由於B都是一樣,所以不同的zookeeper例項通訊埠號不能一樣,所以要給他們分配不同的埠號。
在dataDir=/Users/umgsai/zookeeper/data 下建立myid檔案
編輯myid檔案,並在對應的IP的機器上輸入對應的編號。如在zookeeper上,myid檔案內容就是1.如果只在單點上進行安裝配置,那麼只有一個server.1
新增環境變數
vi /home/umgsai/.bash_profile
新增ZOOKEEPER_HOME配置,新增path=%ZOOKEEPER_HOME%/bin
# zookeeper env
export ZOOKEEPER_HOME=/home/umgsai/zookeeper-3.4.8
export PATH=$ZOOKEEPER_HOME/bin:$PATH
使配置檔案生效
source .bash_profile
在防火牆中開啟要用到的埠2181 2888 3888
sudo chkconfig iptables on
service iptables start
編輯 /etc/sysconfig/iptables
vi /etc/sysconfig/iptables
增加以下內容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT
重啟防火牆
service iptables restart
檢查防火牆狀態
service iptables status
啟動Zookeeper
進入bin目錄下執行
./zkServer.sh start
可以使用jps命令檢視程序。
QuorumPeerMain是Zookeeper程序。
檢視狀態
./zkServer.sh status
檢視zookeeper服務輸出資訊,服務資訊輸出檔案在.../bin/zookeeper.out
tail -500f zookeeper.out
配置zookeeper開始使用umgsai使用者啟動
編輯/etc/rc.local檔案。加入以下內容
su - umgsai -c 'home/umgsai/zookeeper-2.4.8/bin/zkServer.sh start'
參考 http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/