1. 程式人生 > >zookeeper系列之:獨立模式部署zookeeper服務

zookeeper系列之:獨立模式部署zookeeper服務

pat 觀察 系統環境 centos 復制 init pac 很多 編輯

一、簡述

  獨立模式是部署zookeeper服務的三種模式中最簡單和最基礎的模式,只需一臺機器即可,獨立模式僅適用於學習,開發和生產都不建議使用獨立模式。本文介紹以獨立模式部署zookeeper服務器的全過程,並提供一些驗證它正在運行的簡單命令。

二、先決條件

  1、一臺機器,本文使用服務器為CentOS 7.3。

  2、zookeeper在java虛擬機(JVM)上運行,要求JDK1.6或更高版本,所以需要安裝JDK並配置環境變量,JDK的安裝網絡上有很多教程,此處就不再贅述,本文使用JDK版本為JDK1.8

三、下載zookeeper

  下載zookeeper,一般我選擇到zookeeper檔案館中下載,既然是zookeeper檔案館,那zookeeper的各種版本,應有盡有,此處獻上連接:http://zookeeper.apache.org/releases.html。此處使用的是zookeeper-3.4.0

,所以下載文件zookeeper-3.4.0.tar.gz

四、獨立模式部署zookeeper服務

  1、新建目錄:在跟目錄下新建目錄/data/zookeeper

  2、上傳文件:上傳zookeeper-3.4.0.tar.gz/data/zookeeper目錄下。

  3、解壓:解壓縮包到當前目錄下,tar xzf zookeeper-3.4.0.tar.gz

  4、配置zookeeper環境變量:編輯/etc/profile文件,在文件末尾添加下列代碼:

技術分享圖片
1 export ZOOKEEPER_HOME=/data/zookeeper/zookeeper-3.4.0
2 export PATH=$PATH:$ZOOKEEPER_HOME/bin
配置zookeeper環境變量

    如下圖所示:

    技術分享圖片

    保存文件,執行命令source /etc/profile使命令立即生效。

  5、配置zookeeper

    在啟動zookeeper服務之前,我們需要創建一個配置文件,用於配置zookeeper服務。這個文件習慣上命名為zoo.cfg,在解壓後的zookeeper文件下的conf目錄下可以找到zoo.cfg文件的模板文件zoo_sample.cfg,如下圖所示:

    技術分享圖片

    使用命令cp zoo_sample.cfg zoo.cfg復制zoo_sample.cfg文件並重命名為zoo.cfg,如下圖所示:

    技術分享圖片

    編輯zoo.cfg文件,修改dataDir屬性值為/data/zookeeper/zdata,如下圖所示,該屬性主要是配置zookeeper產生的數據存放的目錄。也可以為其他的目錄,前提是目錄已經存在,如果不存在,則新建。此處/data/zookeeper/zdata目錄我已經提前建好。

    技術分享圖片

    註釋掉屬性initLimit和syncLimit。

    仔細觀察可以發現此處僅僅設置了3個屬性,分別為tickTime=2000、dataDir=/data/zookeeper/zdata、clientPort=2181。tickTime和clientPort保持默認即可,這是獨立模式下zookeeper的最低要求。附錄中會附上這3個屬性的詳細解析。

  6、啟動zookeeper:由於配置了zookeeper系統環境變量,所以可以在任意路徑下執行zkServer.sh start 命令來啟動zookeeper。當然,如果沒有配置環境變量的話,只能到/data/zookeeper/zookeeper-3.4.0/bin下通過命令./zkServer.sh start來啟動zookeeper服務。如成功下圖所示:

    技術分享圖片

五、驗證

  驗證zookeeper服務是否啟動(或服務是否正常),其實很簡單。使用nc發送ruok命令到監聽端口,即可檢查zookeeper服務是否正在運行。命令如下:

技術分享圖片
echo ruok | nc localhost 2181
檢查zookeeper服務是否運行

  ruok(必須配置zookeeper環境變量後此命令才有效)命令即 Are you OK?,即詢問zookeeper服務是否安好,如果安好,也就是zookeeper服務正在運行,則打印imok(I am ok),如下圖所示:

技術分享圖片

六、客戶端連接zookeeper服務

  在任意路徑下執行命令zkCli.sh -server localhost:2181連接zookeeper,如果沒有配置環境變量,需要到/data/zookeeper/zookeeper-3.4.0/bin路徑下執行./zkCli.sh -server localhost:2181,如下圖所示:

技術分享圖片

  連接成功之後輸入命令ls /可以看到zookeeper服務默認已經創建了一個zookeeper節點,如下圖所示:

  技術分享圖片

至此,獨立模式下部署zookeeper服務成功,接下來可以操作zookeeper啦!在下一篇博文中會介紹zookeeper的簡單操作。

附錄:上述配置文件中各變量詳解

  1、tickTime屬性指定了zookeeper中的基本事件單元,以毫秒為單位。例如秒是人類的基本事件單元,人類計時以1秒、2秒、3秒.........,而zookeeper則使用我們給它設置的時間單元來計時。

   2、dataDir屬性指定了zookeeper產生的數據存儲的位置,建議不要使用默認位置,該屬性值代表的路徑必須存在,zookeeper啟動時找不到該路徑會拋出異常。

   3、clientPort屬性指定了zookeeper用於監聽客戶端的端口

由於能力有限,如有不足和錯誤之處,還望不吝指出!

zookeeper系列之:獨立模式部署zookeeper服務