Zookeeper安裝和配置

Zookeeper的安裝和配置十分簡單,既可以配置成單機模式,也可以配置成集群模式

下載zookeeper的安裝包之后,解壓到合適目錄。

單機模式
進入zookeeper目錄下的conf子目錄,創(chuàng)建zoo.cfg(conf/zoo_sample.cfg是默認配置文件)

tickTime=2000
dataDir=/Application/zookeeper/data
dataLogDir=/Application/zookeeper/logs
clientPort=4180

- tickTime: zookeeper中使用的基本時間單位,毫秒值
- dataDir: 數(shù)據(jù)目錄,可以是任意目錄
- dataLogDir: log目錄,同樣可以是任意目錄。如果沒有設(shè)置該參數(shù),將使用和dataDir相同的設(shè)置
- clientPort: 監(jiān)聽client連接的端口號

至此,zookeeper的單機模式已經(jīng)配置好了。啟動server只需運行腳本:

$ bin/zkServer.sh start

Server啟動之后,就可以啟動client連接server了,執(zhí)行腳本:

$ bin/zkCli.sh -server localhost:4180

偽集群模式
所謂偽集群,是指在單臺機器中啟動多個zookeeper進程,并組成一個集群。以啟動3個zookeeper進程為例
將zookeeper的目錄拷貝2份:

|--zookeeper0
|--zookeeper1
|--zookeeper2

更改zookeeper0/conf/zoo.cfg文件:

tickTime=2000
initLimit=5
syncLimit=2
dataDir=/Application/zookeeper0/data
dataLogDir=/Application/zookeeper0/logs
clientPort=4180
server.0=127.0.0.1:8880:7770
server.1=127.0.0.1:8881:7771
server.2=127.0.0.1:8882:7772

新增參數(shù)的含義:
- initLimit: 集群中的包含多臺server,其中一臺為leader,其余的server為follower。initLimit參數(shù)配置初始化連接時,follower和leader之間的最長心跳時間。此時該參數(shù)設(shè)置為5,說明時間限制為5倍tickTime,即5*2000=10000ms=10s
- syncLimit: 該參數(shù)配置leader和follower之間發(fā)送消息,請求和應(yīng)答的最大時間長度。此時該參數(shù)設(shè)置為2,說明時間限制為2倍tickTime,即4000ms
- server.X=A:B:C 其中X是一個數(shù)字,表示這是第幾號server。A是該server所在的IP地址。B配置該server和集群中的leader交換消息所使用的端口。C配置選舉leader時所使用的端口。由于配置的是偽集群模式,所以各個server的B,C參數(shù)必須不同

參照zookeeper0/conf/zoo.cfg,配置zookeeper1/conf/zoo.cfg和zookeeper2/conf/zoo.cfg文件只需更改dataDir、dataLogDir、clientPort參數(shù)即可
在之前設(shè)置的dataDir中新建myid文件,寫入一個數(shù)字,該數(shù)字表示這是第幾號server,該數(shù)字必須和zoo.cfg文件中的server.X中的X一一對應(yīng):
/zookeeper0/data/myid文件中寫入0
/zookeeper1/data/myid文件中寫入1
/zookeeper2/data/myid文件中寫入2

分別進入三個zookeeper下的bin目錄,啟動server

$ bin/zkServer.sh start

任意選擇一個server目錄,啟動客戶端

$ bin/zkCli.sh -server localhost:4180

集群模式
集群模式的配置和偽集群基本一致
由于集群模式下,各server部署在不同的機器上,因此各server的conf/zoo.cfg文件可以完全一樣

tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/zookeeper/data
dataLogDir=/home/zookeeper/logs
clientPort=4180
server.43=10.1.39.43:2888:3888
server.47=10.1.39.47:2888:3888
server.48=10.1.39.48:2888:3888

需要注意的是, 各server的dataDir目錄下的myid文件中的數(shù)字必須與對應(yīng)的server.X的X相同

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容