zookeeper系列之:獨立模式部署zookeeper服務
一、簡述
獨立模式是部署zookeeper服務的三種模式中最簡單和最基礎的模式,只需一臺機器即可,獨立模式僅適用於學習,開發和生產都不建議使用獨立模式。本文介紹以獨立模式部署zookeeper伺服器的全過程,並提供一些驗證它正在執行的簡單命令。
二、先決條件
1、一臺機器,本文使用伺服器為 CentOS 7.3。
2、zookeeper在java虛擬機器(JVM)上執行,要求JDK1.6或更高版本,所以需要安裝JDK並配置環境變數,JDK的安裝網路上有很多教程,此處就不再贅述,本文使用JDK版本為 JDK1.8 。
三、下載zookeeper
下載zookeeper,一般我選擇到zookeeper檔案館中下載,既然是zookeeper檔案館,那zookeeper的各種版本,應有盡有,此處獻上連線: ofollow,noindex">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用於監聽客戶端的埠
由於能力有限,如有不足和錯誤之處,還望不吝指出!