centos 安裝zookeeper叢集
ZooKeeper 的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者。
防止單點故障:ZooKeeper群架通常有2n+1臺Server組成,每臺Server都知道彼此的存在。對於2n+1臺Server,只要有n+1(即一般以上)Server可用,整個叢集就保持可用。當然,單個ZooKeeper也可以搭建,只是沒有了高可用的特性。
本次安裝3臺虛擬機器測試
1、安裝jdk
#解壓檔案到/usr/local
#tar -zxvf jdk-8u131-linux-x64.gz -C /usr/local
#修改環境變數
#vi /etc/profile
在檔案末尾加上下邊內容:
#set java environment
JAVA_HOME=/usr/local/jdk1.8.0_131
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH
#生效
#source /etc/profile
2、安裝zookeeper
下載地址:http://archive.apache.org/dist/zookeeper/
本次測試安裝:apache-zookeeper-3.8.0-bin.tar.gz
建立資料和日誌目錄
#mkdir -p /home/zookeeper/data
#mkdir -p /home/zookeeper/data
#解壓檔案到/usr/local
#tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz -C /usr/local/
#編輯配置檔案
#cd /usr/local/apache-zookeeper-3.8.0-bin/conf/
#cp zoo_sample.cfg zoo.cfg
#備份 zoo_sample.cfg為 zoo_sample.cfg.bak,不能用兩個cfg檔案,否則啟動失敗
#mv zoo_sample.cfg zoo_sample.cfg
#vi zoo.cfg
主要資訊:
tickTime=2000
initLimit=10
syncLimit=5
#資料目錄和日誌目錄,這個要提前建立 zookeeper不會幫建立的,不建立會報錯
dataDir=/home/zookeeper/data
dataLogDir=/home/zookeeper/logs
# 客戶埠,建議修改,不使用預設
clientPort=2181
#server 叢集地址
server.1=192.168.59.102:2888:3888
server.2=192.168.59.103:2888:3888
server.3=192.168.59.104:2888:3888
建立myid
#進入配置好的資料檔案目錄
#cd /home/zookeeper/data
#建立
#echo 1 > myid
myid檔案中只有一個數字,即一個Server ID。例如,server.1 的myid檔案內容就是“1”。
注意,請確保每個server的myid檔案中id數字不同,並且和server.id=host:port:port中的id一致。id的範圍是1~255
以上是第一個伺服器的安裝,再另外安裝2臺
重複以上步驟,只有myid檔案不一樣
#echo 2 > myid
#echo 3 > myid
3、驗證:
3臺虛擬機器安裝之後
啟動服務:
#/usr/local/apache-zookeeper-3.8.0-bin/bin/zkServer.sh start
102:
103:
104:
4、測試
關閉103的服務
102還是follower:
104成為新的leader: