最近學習zookeeper, 順便把zookeeper的一些知識整理一下. 先介紹zookeeper的安裝驗證.
學習環境 CentOS Linux 64 , JDK 1.7 , zookeeper-3.4.6
參考: http://zookeeper.apache.org/doc/r3.4.6/zookeeperStarted.html#sc_RunningReplicatedZooKeeper
http://zookeeper.apache.org/doc/r3.4.6/zookeeperAdmin.html#sc_maintenance
A; 準備工作
安裝zookeeper 之前需要先安裝JDK 1.6或者以上版本. JDK的安裝不相信說明.
安裝完JDK之後需要設置JAVA_HOME環境變量, 在此也不在詳細說明
B: 安裝zookeeper
1: 從 zookeeper的官方網站上下載 zookeeper-3.4.6.tar.gz 解壓縮
tar -xzvf zookeeper-3.4.6.tar.gz
2: zookeeper 單獨模式
進入到 zookeeper-3.4.6/conf 目錄
創建默認的zookeeper配置文件 cp zoo_sample.cfg zoo.cfg
註釋掉所有的配置項,只保留 tickTime, dataDir, clientPort
tickTime=2000
dataDir=/tmp/zookeeper/data
clientPort=2181
說明:
tickTime: zookeeper 的基本計時單位. 毫秒級. 2000ms爲2秒
dataDir: zookeeper 的數據目錄,可以根據自己的項目更改
clientPort: zookeeper 監聽客戶端接入的端口
3: 啓動 並驗證
啓動: 到zookeeper-3.4.6目錄下, 運行
bin/zkServer.sh start
驗證: 使用客戶端連接到服務端
bin/zkCli.sh -server 127.0.0.1:2181
C: 集羣式配置
在集羣模式下,我們需要配置集羣中所有的服務器, 以及服務器之間的一些通信參數.
1: 我們需要 修改zookeeper-3.4.6/conf/zoo.cfg 文件, 最小參數列表
tickTime=2000
dataDir=/tmp/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
說明:
initLimit: 各個server之間建立連接的timeout時間. 這裏5 表示 5*tickTime=10秒. tickTime: 是zookeeper的計時的基本單位.
syncLimit: 各個server之間連接建立之後的心跳timeout時間.
server.1=zoo1:2888:3888 : server 保留字, 1 表示server的序號. zoo1: server1的ip地址或者名稱。
2888: 表示服務器之間的通信端口. 3888: 服務器之間的選舉端口. 通過選舉端口,選擇出leader服務器.
2: 創建 myid 文件
在 dataDir 目錄下創建myid文件。 裏邊只有一個數字. 例如 1 表示這是server.1的服務器. server.1的ip要和myid中聲明的相匹配的.
3: 啓動驗證
同上面的驗證.