zookeeper 僞集羣安裝
Time : 20181024vim
環境
- centos7
- zookeeper-3.4.6
zookeerper安裝啓動
- 將下載好的zookeeper-3.4.6.tar經過xftp或者其餘上傳到服務器目錄/home/softwares/zookeeper下
- 執行 tar -zxvf zookeeper-3.4.6.tar;
- 將解壓的文件進行從新命名 mv -f zookeeper-3.4.6 zookeeper
- cd zookeeper/conf 進入到文件夾下找到 zoo_simple.cfg
- cp -p zoo.simple.cfg zoo.cfg;建立zoo.cfg配置文件,zookeeper在啓動時會默認的找到
-
進行文件的內容修改 vim zoo.cfgcentos
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/home/softwares/zookeeper/zk/data/data
dataLogDir=/home/softwares/zookeeper/zk/dataLog/datalog
# the port at which the clients will connect
clientPort=2181
- 進行啓動 cd /home/softwares/zookeeper/zookeeper/bin;
./zkServer start;
進行zookeeper集羣搭建
在單機上進行部署集羣的話只須要在啓動的時候帶上響應的配置文件服務器
- cd /home/softwares/zookeeper/zk;
- 建立配置中心文件夾 mkdir conf
- 將默認的配置文件 zoo.cfg 或者 zoo_simple.cfg複製到當前目錄
cp -p /home/softwares/zookeeper/zookeeper/conf/zoo.cfg zoo1/cfg
- 修改配置文件
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/softwares/zookeeper/zk/data/data_1
dataDirLog=/home/softwares/zookeeper/zk/datalog/datalog_1
#dataDir=/home/softwares/zookeeper/zk/data/data_2
#dataDirLog=/home/softwares/zookeeper/zk/datalog/datalog_2
#dataDir=/home/softwares/zookeeper/zk/data/data_3
#dataDirLog=/home/softwares/zookeeper/zk/datalog/datalog_3
clientPort=2181server.0=localhost:2287:3387
server.1=localhost:2288:3388
server.2=localhost:2289:3389centos7
- 進行其餘配置文件的編寫
cp zoo1.cfg zoo2.cfg; cp zoo1.cfg zoo3.cfg;
修改文件中的dataDir以及dataLogDir以及端口號
- 配置集羣須要的myid
/home/softwares/zookeeper/zk/data/data_1 下建立myid echo 1 > myid
/home/softwares/zookeeper/zk/data/data_2 下建立myid echo 2 > myid
/home/softwares/zookeeper/zk/data/data_3 下建立myid echo 0 > myid
- 分別啓動便可 : 在zkServer目錄下 ./zkServer start ../../../zk/conf/zoo1.cfg
- 查看狀態 : ./zkServer status ../../../zk/conf/zoo1.cfg
參數配置說明
- initLimit
ZooKeeper集羣模式下包含多個zk進程,其中一個進程爲leader,餘下的進程爲follower。
當follower最初與leader創建鏈接時,它們之間會傳輸至關多的數據,尤爲是follower的數據落後leader不少。initLimit配置follower與leader之間創建鏈接後進行同步的最長時間。
- syncLimit
配置follower和leader之間發送消息,請求和應答的最大時間長度。
- tickTime
tickTime則是上述兩個超時配置的基本單位,例如對於initLimit,其配置值爲5,說明其超時時間爲 2000ms * 5 = 10秒。
- dataLogDir
dataLogDir指定的路徑是事務日誌保存路徑
- dataDir
dataDir指定的路徑是快照保存路徑,當沒有指定dataLogDir路徑時,事務日誌也會保存在該目錄下
- server.id=host:port1:port2 其中id爲一個數字,表示zk進程的id,這個id也是dataDir目錄下myid文件的內容。 host是該zk進程所在的IP地址,port1表示follower和leader交換消息所使用的端口,port2表示選舉leader所使用的端口。 其配置的含義跟單機模式下的含義相似,不一樣的是集羣模式下還有一個myid文件。myid文件的內容只有一行,且內容只能爲1 - 255之間的數字,這個數字亦即上面介紹server.id中的id,表示zk進程的id