Zookeeper的安裝與使用

1.1. Zookeeper的安裝與使用

 

ZooKeeper的安裝包括單機模式安裝,以及集羣模式安裝。node

 

安裝若是有不懂能夠看:linux

http://www.javashuo.com/article/p-xnadfoyd-hk.htmlshell

 

1.1.1. Windows環境下搭建Zookeeper

 

環境要求:必需要有jdk環境。apache

(1)安裝jdkvim

(2)安裝zookeeper,能夠在http://zookeeper.apache.org/官網下下載zookeeper。服務器

我下載的是3.3.6版本的zookeeper。工具

(3)解壓zookeeper後獲取到zookeeper的目錄。性能

 

 

對主要的一些目錄作介紹:測試

Bin:主要運行的一些腳本ui

Conf:配置文件的所在地

Lib:zookeeper的jar

 

(4)啓動zookeeper服務

走到bin目錄下去運行zkServer.cmd,雙擊它,可是出現一閃而退的狀況,這是正常的。

conf目錄下將zoo_sample.cfg複製粘貼命名爲zoo.cfg。

並修改其中的內容:

 1 # The number of milliseconds of each tick
 2 
 3 tickTime=2000
 4 
 5 # The number of ticks that the initial
 6 
 7 # synchronization phase can take
 8 
 9 initLimit=10
10 
11 # The number of ticks that can pass between
12 
13 # sending a request and getting an acknowledgement
14 
15 syncLimit=5
16 
17 # the directory where the snapshot is stored.
18 
19 dataDir=C:\\Users\\Dell\\Desktop\\zookeeper\\zookeeper-3.3.6\\zookeeper-3.3.6\\data
20 
21 dataDir=C:\\Users\\Dell\\Desktop\\zookeeper\\zookeeper-3.3.6\\zookeeper-3.3.6\\log
22 
23 # the port at which the clients will connect
24 
25 clientPort=2181

配置文件簡單解析

一、tickTime:這個時間是做爲Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每一個 tickTime 時間就會發送一個心跳。

二、dataDir:顧名思義就是Zookeeper 保存數據的目錄,默認狀況下,Zookeeper 將寫數據的日誌文件也保存在這個目錄裏。

三、dataLogDir:顧名思義就是Zookeeper 保存日誌文件的目錄

四、clientPort:這個端口就是客戶端鏈接Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。

 

好修改完畢後,就能夠去啓動zookeeper的服務了。

 

出現當前界面表示啓動成功。能夠去測試一下了。

補充:ZooKeeper的安裝模式分爲三種,分別爲:單機模式(stand-alone)、集羣模式和集羣僞分佈模式。ZooKeeper 單機模式的安裝相對比較簡單,若是第一次接觸ZooKeeper的話,建議安裝ZooKeeper單機模式或者集羣僞分佈模式。以上使用的是單機模式

 

1.1.2. Linux安裝單機版

 

提示:

單機模式較簡單,是指只部署一個zk進程,客戶端直接與該zk進程進行通訊。
在開發測試環境下,經過來講沒有較多的物理資源,所以咱們常使用單機模式。固然在單臺物理機上也能夠部署集羣模式,但這會增長單臺物理機的資源消耗。故在開發環境中,咱們通常使用單機模式。
可是要注意,生產環境下不可用單機模式,這是因爲不管從系統可靠性仍是讀寫性能,單機模式都不能知足生產的需求。

 

環境要求:必需要有jdk環境。當前安裝機器是有jdk1.8的環境了,就不演示jdk的安裝了。

 

(1)下載zookeeper安裝包zookeeper-3.3.6.tar.gz

 

(2)上傳到linux上,並將其解壓出來。解壓命令:tar -zxvf zookeeper-3.3.6.tar.gz

解壓後會獲得一個zookeeper-3.3.6的目錄。並將去複製到/usr/local目錄下

cp -r zookeeper-3.3.6 zookeeper

 

(3)進入到/usr/local/zookeeper/conf目錄下,拷貝zoo_samle.cfg爲zoo.cfg

 cd zookeeper-3.3.6/conf/

 cp zoo_sample.cfg zoo.cfg

 

(4)編輯zoo.cfg文件,修改成:

 1 # The number of milliseconds of each tick
 2 
 3 tickTime=2000
 4 
 5 # The number of ticks that the initial
 6 
 7 # synchronization phase can take
 8 
 9 initLimit=10
10 
11 # The number of ticks that can pass between
12 
13 # sending a request and getting an acknowledgement
14 
15 syncLimit=5
16 
17 # the directory where the snapshot is stored.
18 
19 # 指定數據存放目錄
20 
21 dataDir=/usr/zookeeper
22 
23 # log 存放目錄
24 
25 dataLogDir=/usr/zookeeper/log
26 
27 # the port at which the clients will connect
28 
29 # 端口號
30 
31 clientPort=2181

配置文件簡單解析 

一、tickTime:這個時間是做爲Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每一個 tickTime 時間就會發送一個心跳。

二、dataDir:顧名思義就是Zookeeper 保存數據的目錄,默認狀況下,Zookeeper 將寫數據的日誌文件也保存在這個目錄裏。

三、dataLogDir:顧名思義就是Zookeeper 保存日誌文件的目錄

四、clientPort:這個端口就是客戶端鏈接Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。

 

(5)修改環境變量

vim /etc/profile

#指向到zookeeper目錄下

export ZOOKEEPER_INSTALL=/usr/local/zookeeper

export PATH=$ZOOKEEPER_INSTALL/bin:$PATH

 

source /etc/profile //讓環境變量生效

 

(6)啓動zookeeper

bin目錄下

./zkServer.sh start 啓動

./zkServer.sh status 查看狀態,看看是否啓動成功

./zkServer.sh stop 關閉zookeeper服務

 

(7)好了安裝成功,可使用客戶端去使用zookeeper了。

鏈接zookeeper:Zkcli.sh -server 127.0.0.1:2181

 

1.1.3. Linux集羣版安裝

 

單機模式的zk進程雖然便於開發與測試,但並不適合在生產環境使用。在生產環境下,咱們須要使用集羣模式來對zk進行部署。

注意
在集羣模式下,建議至少部署3個zk進程,或者部署奇數個zk進程。若是隻部署2個zk進程,當其中一個zk進程掛掉後,剩下的一個進程並不能構成一個quorum的大多數。所以,部署2個進程甚至比單機模式更不可靠,由於2個進程其中一個不可用的可能性比一個進程不可用的可能性還大。 

 

環境要求:

準備三臺服務器,每臺服務器上必需要有jdk環境。

 

安裝開始:

(1)上傳zookeeper 壓縮包而且解壓出來。

(2)拷貝conf 目錄下的zoo_samle.cfg文件爲zoo.cfg,並修改其中的內容:

 

tickTime=2000

initLimit=5

syncLimit=2

dataLogDir=/usr/local/zookeeper/logs

dataDir=/usr/local/zookeeper/data

clientPort=2181

server.1=192.168.100.21:2888:3888

server.2=192.168.100.23:2888:3888

server.3=192.168.100.90:2888:3888

配置說明: 

initLimit
ZooKeeper集羣模式下包含多個zk進程,其中一個進程爲leader,餘下的進程爲follower。
follower最初與leader創建鏈接時,它們之間會傳輸至關多的數據,尤爲是follower的數據落後leader不少。initLimit配置follower與leader之間創建鏈接後進行同步的最長時間

syncLimit
配置follower和leader之間發送消息,請求和應答的最大時間長度。

tickTime
tickTime則是上述兩個超時配置的基本單位,例如對於initLimit,其配置值爲5,說明其超時時間爲 2000ms * 5 = 10秒。

server.id=host:port1:port2
其中id爲一個數字,表示zk進程的id,這個id也是dataDir目錄下myid文件的內容。
host是該zk進程所在的IP地址,port1表示follower和leader交換消息所使用的端口,port2表示選舉leader所使用的端口。

dataDir
其配置的含義跟單機模式下的含義相似,不一樣的是集羣模式下還有一個myid文件。myid文件的內容只有一行,且內容只能爲1 - 255之間的數字,這個數字亦即上面介紹server.id中的id,表示zk進程的id。

 

注意 
若是僅爲了測試部署集羣模式而在同一臺機器上部署zk進程,server.id=host:port1:port2配置中的port參數必須不一樣。可是,爲了減小機器宕機的風險,強烈建議在部署集羣模式時,將zk進程部署不一樣的物理機器上面。

 

(3)進入zoo.cfg文件制定data的目錄下建立myid文件,並寫入值。

這個值是每臺服務器上的zookeeper的進程id。都是不一樣的。

 

(4)三臺服務器分別進行以上操做後。分別在這三臺機器上啓動zk進程,這樣咱們便zk集羣啓動了起來。

在啓動成功後,可使用 ./zkServer.sh status 來查看每臺服務器是否啓動成功,還能夠看到當前zk的進程是leader仍是follower

 

(5)鏈接

可使用如下命令來鏈接一個zookeeper集羣:

bin/zkCli.sh -server 192.168.100.21:2181,192.168.100.23:2181,192.168.100.90:2181

 

成功鏈接後,能夠看到以下輸出:

 

 

1.1.4. 客戶端使用

ZooKeeper命令行工具相似於Linux的shell環境,不過功能確定不及shell啦,可是使用它咱們能夠簡單的對ZooKeeper進行訪問,數據建立,數據修改等操做.使用 zkCli.sh -server 127.0.0.1:2181 鏈接到 ZooKeeper 服務,鏈接成功後,系統會輸出 ZooKeeper 的相關環境以及配置信息。

命令行工具的一些簡單操做以下:

1. 顯示根目錄下、文件: ls / 使用 ls 命令來查看當前 ZooKeeper 中所包含的內容

2. 顯示根目錄下、文件: ls2 / 查看當前節點數據並能看到更新次數等數據

3. 建立文件,並設置初始內容: create /zk "test" 建立一個新的 znode節點「 zk 」以及與它關聯的字符串

4. 獲取文件內容: get /zk 確認 znode 是否包含咱們所建立的字符串

5. 修改文件內容: set /zk "zkbak" 對 zk 所關聯的字符串進行設置

6. 刪除文件: delete /zk 將剛纔建立的 znode 刪除

7. 退出客戶端: quit

8. 幫助命令: help

相關文章
相關標籤/搜索