溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ZooKeeper在單機和集群環(huán)境下怎么安裝搭建及使用

發(fā)布時間:2022-02-06 14:03:57 來源:億速云 閱讀:103 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“ZooKeeper在單機和集群環(huán)境下怎么安裝搭建及使用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“ZooKeeper在單機和集群環(huán)境下怎么安裝搭建及使用”吧!

1、下載

首先我們下載最新穩(wěn)定版本的zookeeper

2、解壓

下載完成后,我們解開壓縮包

3、創(chuàng)建配置文件

解壓后的路徑下找到conf文件夾,進入conf文件夾復(fù)制zoo_sample.cfg,命名為zoo.cfg

# 每個tick的毫秒數(shù)。后面的initLimit和syncLimit都以tick為單位
tickTime=2000
#初始化同步階段時長
initLimit=10
# 同步確認時長
syncLimit=5
# 快照存儲路徑,不要使用/tmp。這里使用只是為了示例
dataDir=/tmp/zookeeper
# 客戶端端口好
clientPort=2181

#可連接的client的最大數(shù)
#如果需要處理更多的clinet,請增加此數(shù)量
#maxClientCnxns=60
# Be sure to read the maintenance section of the 
#
# administrator guide before turning on autopurge.
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

對于學(xué)習(xí)來說,一般無需做修改。生產(chǎn)環(huán)境,需要修改dataDir。其他參數(shù)后續(xù)調(diào)優(yōu)。

4、單機啟動ZooKeeper

在ZooKeeper根目錄下執(zhí)行 bin/zkServer.sh start

?  zookeeper-3.4.12 bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /Users/yimingli/dev/tool/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

5、通過客戶端連接ZooKeeper

?  zookeeper-3.4.12 bin/zkCli.sh

6、通過客戶端執(zhí)行基本命令

1、創(chuàng)建znode,名為/my_test,攜帶數(shù)據(jù)testData

[zk: localhost:2181(CONNECTED) 0] create /my_test testData

2、查看znode信息

[zk: localhost:2181(CONNECTED) 2] get /my_test

返回如下:

testData
cZxid = 0x2e9
ctime = Mon Oct 29 10:50:46 CST 2018
mZxid = 0x2e9
mtime = Mon Oct 29 10:50:46 CST 2018
pZxid = 0x2e9
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 0

3、修改znode數(shù)據(jù)

[zk: localhost:2181(CONNECTED) 3] set /my_test testDataV2

4、創(chuàng)建子znode

[zk: localhost:2181(CONNECTED) 0] create /my_test/tester1 testData

5、列出子znode

[zk: localhost:2181(CONNECTED) 5] ls  /my_test
[tester1]

6、刪除znode

有子節(jié)點的znode不能直接刪除,否則會報錯。

[zk: localhost:2181(CONNECTED) 6] delete /my_test
Node not empty: /my_test

我們刪除/my_test/tester1。

[zk: localhost:2181(CONNECTED) 8] delete /my_test/tester1

再次查看該znode。

[zk: localhost:2181(CONNECTED) 9] get /my_test/tester1
Node does not exist: /my_test/tester1

已經(jīng)被成功刪除了。

7、集群配置和啟動

我們配置和啟動一個三臺server的集群。

1、修改zoo.cfg文件

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=ip1:2888:3888
server.2=ip2:2888:3888
server.3=ip3:2888:3888

initLimit,zookeeper用來限制zookeeper服務(wù)器連接到leader的時長。

syncLimit,一個服務(wù)器多久在leader那里過期。

以上兩種過期時間,單位都是tickTime,

本例initLimit時長為5個tickTime=5*2000ms=10秒

server.x列出了所有的zookeeper服務(wù)。集群啟動它通過查看data下面的myid來知道自己是哪臺服務(wù)器。

2888用來連接其它server。3888用來leader選舉。

2、復(fù)制2份zookeeper到另外兩臺server上。

3、在配置的dataDir路徑下創(chuàng)建myid文件,文件內(nèi)容為對應(yīng)自己的server.x的x值。比如zoo1這臺sever,myid文件中內(nèi)容為1.

4、啟動每個zookeeper

5、查看本機狀態(tài),是leader還是follower

?  zookeeper-3.4.12 bin/zkServer.sh status

至此我們已經(jīng)把zookeeper集群啟動起來了,并且做了驗證,有一臺是leader,另外兩臺是follower。

我們還可以做個實驗,看zookeeper集群是否工作正常。

1、連接其中一臺server,創(chuàng)建一個znode。

?  zookeeper-3.4.12 bin/zkCli.sh -server ip1:2181
[zk: ip1:2181(CONNECTED) 10] create /zk_test my_data

2、連接另外一臺server,列出所有根節(jié)點下znode。

?  zookeeper-3.4.12 bin/zkCli.sh -server ip2:2181
[zk: ip2:2181(CONNECTED) 10] ls /

輸出如下:

[zk_test]

可以看到集群已經(jīng)能夠正常工作,server間可以正常進行數(shù)據(jù)的復(fù)制。

客戶端連接集群方法如下:

?  zookeeper-3.4.12 bin/zkCli -server ip1:2181,ip2:2181,ip3:2181

客戶端會自動隨機選擇集中一臺連接。

感謝各位的閱讀,以上就是“ZooKeeper在單機和集群環(huán)境下怎么安裝搭建及使用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對ZooKeeper在單機和集群環(huán)境下怎么安裝搭建及使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI