Apache ZooKeeper

出自Gea-Suan Lin's Wiki
跳至導覽 跳至搜尋

ZooKeeper是一套基於Java的分散式Key-Value系統。

硬件

在測試環境下,ZooKeeper可以只使用t3.nano(512 MB的記憶體),另外手動加上512 MB的Swap執行。

在正式環境下,Confluent官方的建議是4 GB的記憶體與64 GB以上的SSD[1]

安裝

Ubuntu的系統內有提供ZooKeeper套件,另外在Confluent的套件中也有提供(通常會在配合Apache Kafka時使用)。

這邊會使用Ubuntu 18.04所內附的ZooKeeper安裝:

sudo apt install -y zookeeper zookeeperd

其中zookeeper是程式本體,而zookeeperd是開機時跑起的script。

設定

先把/etc/zookeeper/conf_example/的內容複製一份到/etc/zookeeper/conf_production/下:

sudo cp -R /etc/zookeeper/conf_example/ /etc/zookeeper/conf_production/

每台機器的/etc/zookeeper/conf_production/myid都需要不同,可以從1255

1

這邊要列出所有機器/etc/zookeeper/conf_production/zoo.cfg

tickTime=2000
dataDir=/var/lib/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.1=172.31.x:2888:3888
server.2=172.31.x:2888:3888
server.3=172.31.x:2888:3888

告訴系統應該要讀哪個設定檔(目錄):

sudo update-alternatives --install /etc/zookeeper/conf zookeeper-conf /etc/zookeeper/conf_production 1
sudo update-alternatives --set zookeeper-conf /etc/zookeeper/conf_production

然後設定在開機時啟動:

sudo systemctl enable zookeeper

可以重開機,或是直接跑起來:

sudo service zookeeper start

測試

可以看輸出的資訊判斷:

echo stat | nc 127.0.0.1 2181

相關連結

參考文獻

  1. Running ZooKeeper in Production. [2021-05-18] (English). 

外部連結