前一篇文章介紹了zookeeper的單機模式的安裝及應用,但是zookeeper是為了解決分布式應用場景的,所以通常都會執行在集群模式下。今天由於手頭機器不足,所以今天打算在一台機器上部署三個zookeeper服務來組成乙個zookeeper集群。這裡解壓zookeeper的安裝包到/opt目錄下,這裡用三個目錄來代表三個zookeeper例項,分別是/opt/zookeeper1,/opt/zookeeper2和/opt/zookeeper3.
1. 首先編輯每個zookeeper目錄下的conf/zoo.cfg檔案。三個配置配置檔案的內容分別如下
$ cat /opt/zookeeper1/conf/zoo.cfg
ticktime=2000
datadir=/opt/zookeeper1/data
clientport=2181
initlimit=10
synclimit=5
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883
$ cat /opt/zookeeper2/conf/zoo.cfg
ticktime=2000
datadir=/opt/zookeeper2/data
clientport=2182
initlimit=10
synclimit=5
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883
$ cat /opt/zookeeper3/conf/zoo.cfg
ticktime=2000
datadir=/opt/zookeeper3/data
clientport=2183
initlimit=10
synclimit=5
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883
其中有幾點需要注意
* datadir: 三個zookeeper例項的datadir目錄要區別開,這裡分別指定到各個zookeeper例項目錄下的data目錄。
* clientport: 定義zookeeper客戶端連線zookeeper服務端時使用的埠,這裡因為是在一台機器上做的集群,所以三個例項的埠要區分開。
* server.
: 定義zookeeper集群的各個例項的的ip和埠,這裡因為是在一台機器上做的集群,所以ip都定義的是127.0.0.1,但是後面的埠要區分開。
2. 建立data目錄和例項id檔案
mkdir /opt/zookeeper1/data
mkdir /opt/zookeeper2/data
mkdir /opt/zookeeper3/data
echo 1 > /opt/zookeeper1/data/myid
echo 2 > /opt/zookeeper2/data/myid
echo 3 > /opt/zookeeper3/data/myid
這裡要注意需要在每個zookeeper的datadir目錄下建立myid檔案,內容是記錄各個zookeeper的例項id。
3. 啟動zookeeper服務
分別進入各個zookeeper的bin目錄,然後執行「./zkserver.sh start」來啟動乙個zookeeper服務。
4. 客戶端連線
隨便進入乙個zookeeper的bin目錄,然後執行下面的命令來分別連線zookeeper服務。
./zkcli.sh -server 127.0.0.1:2181
./zkcli.sh -server 127.0.0.1:2182
./zkcli.sh -server 127.0.0.1:2183
在其中的乙個client上建立乙個znode節點
create /mykey myvalue
然後在別的client上檢視新建立zonde節點
get /mykey
5. 檢視zookeeper狀態
啟動zookeeper之後,由於zookeeper自己會有一套leader的選舉演算法,所以此時如果想知道那個zookeeper是leader可以在各個zookeeper的bin目錄執行「./zkserver.sh status」命令來檢視。
如果是leader
$ ./zkserver.sh status
jmx enabled by default
using config: /opt/zookeeper1/bin/../conf/zoo.cfg
mode: leader
如果不是leader
$ ./zkserver.sh status
jmx enabled by default
using config: /opt/zookeeper3/bin/../conf/zoo.cfg
mode: follower
此時可以把leader的那個節點停了,然後再看檢視其它兩個zookeeper例項,此時剩下的兩個zookeeper例項就會再選舉出乙個leader。 zookeeper單機配置
一 在conf的zoo.cfg檔案中配置 1 datadir用於配置當前節點儲存資料的目錄 需要先建立好,zookeeper不會去建立 2 clientport用於指定客戶端訪問zookeeper時的埠 三 啟動 1 在zookeeper的bin目錄下執行zkserver.sh start啟動該節點...
Zookeeper單機安裝
關閉linux centos6.x版本 的防火牆 解壓zookeeper的安裝包 tar xvf zookeeper 3.4.8進入zookeeper的安裝目錄下的子目錄conf目錄中 cd zookeeper 3.4.8 conf 將conf目錄下的zoo sample.cfg檔案複製為zoo.c...
9 ZooKeeper之搭建單機模式。
在集群和單機兩種模式下,我們基本完成了分別針對生產環境和開發環境zookeeper服務的搭建,已經可以滿足絕大多數場景了。現在我們再來看看另外一種情況,如果你手上有且只有一台比較好的機器 大體是 cpu核數大於10,記憶體大於等於8gb 那麼這個時候,如果作為單機模式進行部署,資源明顯優點浪費 而如...