ZooKeeper偽分布式集群安裝

2021-07-25 22:30:11 字數 4771 閱讀 9966

摘要: 講述單台linux伺服器中搭建zookeeper集群的步驟,以及配置檔案中引數的說明。

偽分布式集群:在一台server中,啟動多個zookeeper的例項。

cd /usr

rz -by

tar xf zookeeper-3.4.6.tar.gz

cd zookeeper-3.4.6/conf

cp zoo_sample.cfg zoo1.cfg

cp zoo_sample.cfg zoo2.cfg

cp zoo_sample.cfg zoo3.cfg

例項1的配置:

vi zoo1.cfg

ticktime=2000

initlimit=10

synclimit=5

datadir=/tmp/zookeeper/d_1

clientport=2181

datalogdir=/usr/zookeeper-3.4.6/logs_1

server.1=localhost:2887:3887

server.2=localhost:2888:3888

server.3=localhost:2889:3889

例項2的配置:

vi zoo2.cfg

ticktime=2000

initlimit=10

synclimit=5

datadir=/tmp/zookeeper/d_2

clientport=2182

datalogdir=/usr/zookeeper-3.4.6/logs_2

server.1=localhost:2887:3887

server.2=localhost:2888:3888

server.3=localhost:2889:3889

例項3的配置:

vi zoo3.cfg

ticktime=2000

initlimit=10

synclimit=5

datadir=/tmp/zookeeper/d_3

clientport=2183

datalogdir=/usr/zookeeper-3.4.6/logs_3

server.1=localhost:2887:3887

server.2=localhost:2888:3888

server.3=localhost:2889:3889

mkdir /tmp/zookeeper/d_1

mkdir /tmp/zookeeper/d_2

mkdir /tmp/zookeeper/d_3

mkdir /usr/zookeeper-3.4

.6/logs_1

mkdir /usr/zookeeper-3.4

.6/logs_2

mkdir /usr/zookeeper-3.4

.6/logs_3

echo "1" > /tmp/zookeeper/d_1/myid

echo "2" > /tmp/zookeeper/d_2/myid

echo "3" > /tmp/zookeeper/d_3/myid

/usr/zookeeper-3.4

.6/bin/zkserver.sh start zoo1.cfg

/usr/zookeeper-3.4

.6/bin/zkserver.sh start zoo2.cfg

/usr/zookeeper-3.4

.6/bin/zkserver.sh start zoo3.cfg

jps

#看到類似下面的程序就表示3個例項均啟動成功

13419 quorumpeermain

13460 quorumpeermain

13561 jps

13392 quorumpeermain

#如果未成功啟動,可以到zookeeper.out檔案中檢視啟動失敗的日誌資訊。

[root@localhost ~]# /usr/zookeeper-3.4.6

/bin/zkserver.sh status zoo1.cfg

jmx enabled by default

using config: /usr/zookeeper-3.4.6

/bin/../conf/zoo1.cfg

mode: follower

[root@localhost ~]# /usr/zookeeper-3.4.6

/bin/zkserver.sh status zoo2.cfg

jmx enabled by default

using config: /usr/zookeeper-3.4.6

/bin/../conf/zoo2.cfg

mode: leader

[root@localhost ~]# /usr/zookeeper-3.4.6

/bin/zkserver.sh status zoo3.cfg

jmx enabled by default

using config: /usr/zookeeper-3.4.6

/bin/../conf/zoo3.cfg

mode: follower

#發現例項2為leader,例項1和例項3均為follower

至此,乙個zk的偽分布式集群搭建完畢。

需要引入zookeeper-3.4.6.jar和slf4j-api-1.61.jar這兩個jar包。

package com.cjw.demo;

import org.apache.zookeeper.createmode;

import org.apache.zookeeper.watchedevent;

import org.apache.zookeeper.watcher;

import org.apache.zookeeper.zookeeper;

import org.apache.zookeeper.zoodefs.ids;

public class zookeeperclient

};zookeeper zk = new zookeeper("192.168.157.22:2181", 3000, watcher);

system.out.println("====建立節點");

zk.create("/cjw", "znode1".getbytes(), ids.open_acl_unsafe, createmode.persistent);

system.out.println("====檢視節點是否安裝成功");

system.out.println(new string(zk.getdata("/cjw", false, null)));

system.out.println("====修改節點的資料");

zk.setdata("/cjw", "cjw2015".getbytes(), -1);

system.out.println("====檢視修改的節點是否成功");

system.out.println(new string(zk.getdata("/cjw", false, null)));

system.out.println("====刪除節點");

zk.delete("/cjw", -1);

system.out.println("====檢視節點是否被刪除");

system.out.println("節點狀態:" + zk.exists("/cjw", false));

zk.close();

}}

執行結果:

====建立節點

watchedevent state:syncconnected type:none path:null

====檢視節點是否安裝成功

znode1

====修改節點的資料

====檢視修改的節點是否成功

cjw2015

====刪除節點

====檢視節點是否被刪除

節點狀態:null

initlimit: follower連線並同步到leader的初始化連線時間,它是通過ticktime的倍數表示。當初始化連線

時間超過設定的時間時,則連線失敗。

synclimit: follower和leader之間傳送訊息時請求和應答的時間長度,如果follower在設定的時間範圍內

不能和leader通訊,那麼該follower將被丟棄,它也是按ticktime的倍數進行配置的。

ticktime: 定義心跳的時間間隔,

注:zk的client和server之間也有和web開發類似的session的概念,而zk裡最小的session過期時間

就是ticktime的兩倍

datadir: 儲存在記憶體中資料庫快照功能。

clientport: 監聽客戶端連線的埠號

datalogdir: zk執行的相關日誌寫入目錄,設定了配置,那麼datalog裡日誌的目錄將無效,專門的日誌存放

路徑,對zk的效能和穩定性有好處。

單機搭建zookeeper偽分布式集群

最近在研究hbase的時候,說要依賴zookeeper集群,於是又花時間來研究了下zookeeper集群的搭建,希望能幫到一些童鞋.首先將zookeeper解壓之後,建立了個zookeepercluser的資料夾將解壓的zookeeper複製三份到zookeepercluser下 現在以zookee...

zookeeper偽分布式

wget解壓 tar zxvf zookeeper 3.4.5 cdh5.9.3.tar.gz c opt 進入 opt 目錄修改檔名 mv zookeeper 3.4.5 cdh5.9.3 zookeeper01進入 opt zookeeper01 conf目錄設定配置檔案 cp zoo samp...

簡單搭建zookeeper集群分布式 偽分布式

二 環境準備 2 我準備了三颱虛擬機器,分別為192.168.48.101 192.168.48.102 和 192.168.48.103 3 上傳zookeeper包到101機器。並在zookeeper目錄進行解壓 三 簡單配置 在conf目錄下,通過zoo sample.cfg複製了乙個zoo....