您好,登錄后才能下訂單哦!
這篇文章主要講解了“ZooKeeper在單機和集群環境下怎么安裝搭建及使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ZooKeeper在單機和集群環境下怎么安裝搭建及使用”吧!
首先我們下載最新穩定版本的zookeeper
下載完成后,我們解開壓縮包
解壓后的路徑下找到conf文件夾,進入conf文件夾復制zoo_sample.cfg,命名為zoo.cfg
# 每個tick的毫秒數。后面的initLimit和syncLimit都以tick為單位 tickTime=2000 #初始化同步階段時長 initLimit=10 # 同步確認時長 syncLimit=5 # 快照存儲路徑,不要使用/tmp。這里使用只是為了示例 dataDir=/tmp/zookeeper # 客戶端端口好 clientPort=2181 #可連接的client的最大數 #如果需要處理更多的clinet,請增加此數量 #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
對于學習來說,一般無需做修改。生產環境,需要修改dataDir。其他參數后續調優。
在ZooKeeper根目錄下執行 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
? zookeeper-3.4.12 bin/zkCli.sh
1、創建znode,名為/my_test,攜帶數據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數據
[zk: localhost:2181(CONNECTED) 3] set /my_test testDataV2
4、創建子znode
[zk: localhost:2181(CONNECTED) 0] create /my_test/tester1 testData
5、列出子znode
[zk: localhost:2181(CONNECTED) 5] ls /my_test [tester1]
6、刪除znode
有子節點的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
已經被成功刪除了。
我們配置和啟動一個三臺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服務器連接到leader的時長。
syncLimit,一個服務器多久在leader那里過期。
以上兩種過期時間,單位都是tickTime,
本例initLimit時長為5個tickTime=5*2000ms=10秒
server.x列出了所有的zookeeper服務。集群啟動它通過查看data下面的myid來知道自己是哪臺服務器。
2888用來連接其它server。3888用來leader選舉。
2、復制2份zookeeper到另外兩臺server上。
3、在配置的dataDir路徑下創建myid文件,文件內容為對應自己的server.x的x值。比如zoo1這臺sever,myid文件中內容為1.
4、啟動每個zookeeper
5、查看本機狀態,是leader還是follower
? zookeeper-3.4.12 bin/zkServer.sh status
至此我們已經把zookeeper集群啟動起來了,并且做了驗證,有一臺是leader,另外兩臺是follower。
我們還可以做個實驗,看zookeeper集群是否工作正常。
1、連接其中一臺server,創建一個znode。
? zookeeper-3.4.12 bin/zkCli.sh -server ip1:2181 [zk: ip1:2181(CONNECTED) 10] create /zk_test my_data
2、連接另外一臺server,列出所有根節點下znode。
? zookeeper-3.4.12 bin/zkCli.sh -server ip2:2181 [zk: ip2:2181(CONNECTED) 10] ls /
輸出如下:
[zk_test]
可以看到集群已經能夠正常工作,server間可以正常進行數據的復制。
客戶端連接集群方法如下:
? zookeeper-3.4.12 bin/zkCli -server ip1:2181,ip2:2181,ip3:2181
客戶端會自動隨機選擇集中一臺連接。
感謝各位的閱讀,以上就是“ZooKeeper在單機和集群環境下怎么安裝搭建及使用”的內容了,經過本文的學習后,相信大家對ZooKeeper在單機和集群環境下怎么安裝搭建及使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。