Zookeeper學習(二) 安裝和四字命令

前言

在剛開始沒有接觸zookeeper的具體應用前,光看別人的描述,其實對它的實際應用其實不是特別清晰,因此慢慢從其基礎應用開始瞭解其底層原理是很重要也是很必要的。html

首先,安裝Zookeeper並瞭解一下Zookeeper的基礎命令。這個過程是很是簡單的,正如zookeeper官網說的,zookeeper是可複製的,安裝zookeeper的集羣其實就是安裝多個單機版的zookeeper,而後經過配置讓每一個zookeeper起來。所以,Zookeeper的安裝有下列幾種:數據庫

  1. 單機Zookeeper
  2. 單機多Zookeeper示例
  3. Zookeeper集羣

其實以前在公司項目裏就研究過Zookeeper的使用,並在team的wiki裏把zookeeper的安裝過程和在項目裏的使用信息在wiki中分享了,這裏把當時的安裝過程翻譯(公司wiki是英文寫的),分享一下,並介紹一下zookeeper的基礎命令。在下一章介紹中會作一個簡單的demo介紹下zookeeper的基礎API的使用,同時也會簡單說說咱們當時在項目中是如何使用zookeeper的。apache

單機安裝

1. 環境

centos7, Java 1.8(Zookeeper要求Java不低於1.6的版本)centos

而且Zookeeper必需要2GB的RAM和80GB硬盤空間。服務器

2. 下載Zookeeper

Zookeeper版本查看:Zookeeper Releases性能

咱們項目中使用的版本是:Release 3.4.11(stable) ; Archive網址:Zookeeper 3.4.11測試

cmd: wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gzui

3. 解壓

把下載的Zookeeper解壓成binary文件。centos7

cmd: tar -zxvf zookeeper-3.4.11.tar.gz翻譯

4. 具體操做

  • 進入解壓後zookeeper的文件夾,而後進入conf文件夾。這時候會發現有一個zoo_sample.cfg文件。

  • 複製zoo_sample.cfg並生成一個新的名爲zoo.cfg的文件。

  • 編輯zoo.cfg。

    • 把zoo.cfg中dataDir的值改成一個已經有的文件夾,在咱們當時的測試環境中咱們設置的值是dataDir=/var/lib/zookeeperdataDir是存放內存數據庫快照的位置; 默認狀況下,事務日誌也會存儲在這裏。
    • tickTime:基本事件單元,以毫秒爲單位。它用來控制心跳和超時,默認狀況下最小的會話超時時間爲兩倍的 tickTime。
    • dataLogDir: 事務日誌輸出目錄。儘可能給事務日誌的輸出配置單獨的磁盤或是掛載點,這將極大的提高ZK性能。
    • clientPort:客戶端鏈接server的端口,即對外服務端口,通常默認爲2181。
    • 總參數的詳解:Zoo.cfg 參數介紹

5. 啓動Zookeeper

進入Zookeeper目錄下的bin目錄,開始啓動zookeeper並查看Zookeeper的狀態。

啓動Zookeeper cmd: ./zkServer.sh start

查看Zookeeper狀態 cmd: ./zkServer.sh status

若是沒有啓動成功,能夠查看zookeeper根目錄下的zookeeper.out文件。

6. 使用Zookeeper客戶端鏈接服務器端

在zookeeper根目錄下的bin目錄下,有zkCli.sh文件,這就是Zookeeper的客戶端。可使用zookeeper的客戶端來鏈接服務器端。

cmd: ./zkCli.sh -server IP:PORT

IP:PORT不填寫爲默認鏈接本機Zookeeper。

使用quit能夠退出和服務期端的鏈接。

搭建Zookeeper集羣

如今咱們在一臺機器上搭建好了zookeeper,這個過程也是很是簡單的。

而Zookeeper的集羣須要2*n+1個實例,因此要搭建一個最簡單的zookeeper的集羣,須要三個實例。那麼如今有兩種方案:

  1. 在單臺機器上安裝三個zookeeper實例。可是有幾個條件須要保證:
    1. dataDir須要設置成不一樣的文件夾;
    2. clientPort須要不一樣;
    3. dataLogDir須要設置成不一樣的文件夾(若是有的話);
    4. server.x及後面的端口號須要不一樣(後面會詳細介紹)。
  2. 在三臺機器上安裝三個獨立的zookeeper。

還記得以前的dataDir嗎?進入你設置的dataDir目錄,新建一個名爲myid的文件。文件如其名,myid裏含有一行文本,其含義也就是這個機器在Zookeeper集羣裏的id。這個id不能大於255。若是是在一臺機器上建立了多個zookeeper實例,和在多臺機器上安裝多個zookeeper是同樣,去到它們對應的dataDir文件夾,分別給每個建一個myid文件就能夠了,可是要保證裏面的id值不同。

而後分別編輯每個zookeeper的zoo.cfg文件,在他們的最後加上server.x=ip:port1:port2這樣格式的配置。這樣說有點不清楚,舉個例子配上圖片就清楚啦。

如今假設安裝的三個zookeeper在對應的myid裏設置的id值爲1,2,3,對於其中任意一個zookeeper的實例,它們的x值就是它們在myid裏設置的id值,而且ip也要和實例對應起來,兒後面的port1,port2不只要不同,同時也不能和以前的clientPort同樣,以前我配置的時候吧port1和clientPort配置成同樣的了致使一直失敗。必定要注意!!!

能夠看一下個人配置,記得在每個實例的zoo.cfg中都要配置哦!

看最下面紅框裏面的部分,馬賽克的部分就是對應的ip,千萬記得三個端口不能有重複!

重啓zookeeper

在每一臺機器上重啓zookeeper服務(./zkserver restart),你可能會發現重啓的時候zookeeper會報鏈接不通的錯誤,彆着急,把全部的啓動完~

啓動完以後去看每一臺的狀態,這時候就會有下圖中的狀態:

這個是zookeeper集羣中的leader。

這是集羣中的follower。

Zookeeper的四字命令

zookeeper四字命令的官網介紹:四字命令

下面是每個操做的返回樣例:

相關文章
相關標籤/搜索