zookeeper 安裝配置

ZooKeeper的安裝模式分爲三種,分別爲:單機模式(stand-alone)、集羣模式和集羣僞分佈模式。node

一. 單機安裝、配置:
1. 下載zookeeper二進制安裝包
下載地址:http://apache.dataguru.cn/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gzshell

2.解壓zookeeper安裝包到安裝路徑
3.建立並配置zoo.cfg配置文件,主要配置或修改如下參數apache

tickTime=2000
dataDir=/home/zookeeper/data
dataLogDir=/home/zookeeper/logs
clientPort=2181
參數說明:
tickTime: zookeeper中使用的基本時間單位, 毫秒值.
dataDir: 數據目錄. 能夠是任意目錄.
dataLogDir: log目錄, 一樣能夠是任意目錄. 若是沒有設置該參數, 將使用和dataDir相同的設置.
clientPort: 監聽client鏈接的端口號服務器

在conf目錄中將zoo_samle.cfg 複製並命名爲zoo.cfg便可session

# cp zoo_sample.cfg zoo.cfg工具

zookeeper 環境變量配置oop

# vi /etc/profile
export ZK_HOME=/home/zookeeper/zookeeper-3.4.8
export PATH=$ZK_HOME/bin:$PATH測試

測試:ui

回到zookeeper/bin目錄下,啓動zookeeper服務命令行

在bin下運行 ./zkServer.sh start啓動服務,運行./zkCli.sh -server 10.10.100.10:2181 就是你的服務器和端口,啓動客戶端鏈接服務

 

二. 僞集羣安裝、配置:

所謂僞集羣, 是指在單臺機器中啓動多個zookeeper進程, 並組成一個集羣. 以啓動3個zookeeper進程爲例.
將zookeeper的目錄拷貝2份:
zookeeper0/conf/zoo.cfg文件爲:
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/zookeeper0/data
dataLogDir=/home/zookeeper0/logs
clientPort=2181
server.0=127.0.0.1:8880:7770
server.1=127.0.0.1:8881:7771
server.2=127.0.0.1:8882:7772
新增了幾個參數, 其含義以下:
1 initLimit: zookeeper集羣中的包含多臺server, 其中一臺爲leader, 集羣中其他的server爲follower. initLimit參數配置初始化鏈接時, follower和leader之間的最長心跳時間. 此時該參數設置爲5, 說明時間限制爲5倍tickTime, 即5*2000=10000ms=10s.
2 syncLimit: 該參數配置leader和follower之間發送消息, 請求和應答的最大時間長度. 此時該參數設置爲2, 說明時間限制爲2倍tickTime, 即4000ms.
3 server.X=A:B:C 其中X是一個數字, 表示這是第幾號server. A是該server所在的IP地址. B配置該server和集羣中的leader交換消息所使用的端口. C配置選舉leader時所使用的端口. 因爲配置的是僞集羣模式, 因此各個server的B, C參數必須不一樣.
參照zookeeper0/conf/zoo.cfg, 配置zookeeper1/conf/zoo.cfg, 和zookeeper2/conf/zoo.cfg文件. 只需更改dataDir, dataLogDir, clientPort參數便可.

在以前設置的dataDir中新建myid文件, 寫入一個數字, 該數字表示這是第幾號server. 該數字必須和zoo.cfg文件中的server.X中的X一一對應.
/home/zookeeper0/data/myid文件中寫入0, /home/zookeeper1/data/myid文件中寫入1, /home/zookeeper2/data/myid文件中寫入2.

分別進入/home/zookeeper0/bin, /home/zookeeper1/bin, /hadoop/zookeeper2/bin三個目錄, 啓動server.

三. 集羣安裝、配置:

集羣模式的配置和僞集羣基本一致.
因爲集羣模式下, 各server部署在不一樣的機器上, 所以各server的conf/zoo.cfg文件能夠徹底同樣.
下面是一個示例:
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/zookeeper/data
dataLogDir=/home/zookeeper/logs
clientPort=4180
server.43=10.1.39.43:2888:3888
server.47=10.1.39.47:2888:3888
server.48=10.1.39.48:2888:3888
示 例中部署了3臺zookeeper server, 分別部署在10.1.39.43, 10.1.39.47, 10.1.39.48上. 須要注意的是, 各server的dataDir目錄下的myid文件中的數字必須不一樣,10.1.39.43 server的myid爲43, 10.1.39.47 server的myid爲47, 10.1.39.48 server的myid爲48.

四.zookeeper經常使用命令

ZooKeeper服務命令: 1. 啓動ZK服務: ./zkServer.sh start 2. 查看ZK服務狀態: ./zkServer.sh status 3. 中止ZK服務: ./zkServer.sh stop 4. 重啓ZK服務: ./zkServer.sh restart zk客戶端命令: ZooKeeper 命令行工具相似於Linux的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 ZooKeeper 經常使用四字命令: ZooKeeper 支持某些特定的四字命令字母與其的交互。它們大可能是查詢命令,用來獲取 ZooKeeper 服務的當前狀態及相關信息。用戶在客戶端能夠經過 telnet 或 nc 向 ZooKeeper 提交相應的命令 1. 能夠經過命令:echo stat|nc 127.0.0.1 2181 來查看哪一個節點被選擇做爲follower或者leader 2. 使用echo ruok|nc 127.0.0.1 2181 測試是否啓動了該Server,若回覆imok表示已經啓動。 3. echo dump| nc 127.0.0.1 2181 ,列出未經處理的會話和臨時節點。 4. echo kill | nc 127.0.0.1 2181 ,關掉server 5. echo conf | nc 127.0.0.1 2181 ,輸出相關服務配置的詳細信息。 6. echo cons | nc 127.0.0.1 2181 ,列出全部鏈接到服務器的客戶端的徹底的鏈接 / 會話的詳細信息。 7. echo envi |nc 127.0.0.1 2181 ,輸出關於服務環境的詳細信息(區別於 conf 命令)。 8. echo reqs | nc 127.0.0.1 2181 ,列出未經處理的請求。 9. echo wchs | nc 127.0.0.1 2181 ,列出服務器 watch 的詳細信息。 10. echo wchc | nc 127.0.0.1 2181 ,經過 session 列出服務器 watch 的詳細信息,它的輸出是一個與 watch 相關的會話的列表。 11. echo wchp | nc 127.0.0.1 2181 ,經過路徑列出服務器 watch 的詳細信息。它輸出一個與 session 相關的路徑。

相關文章
相關標籤/搜索