liunx 安装 zookeeper(转)
linux安裝zookeeper及使用
一、安裝條件
想要安裝zookeeper,必須先在linux中安裝好jdk。安裝步驟見:
https://www.cnblogs.com/expiator/p/9987351.html
二、下載并解壓zookeeper壓縮包
1. 先進(jìn)入/usr/local/目錄,也可以是其他的目錄:
[root@localhost /]# cd /usr/local2. zookeeper安裝包可以在官網(wǎng)下載。
也可以在后面這個(gè)地址下載??http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
如果鏈接打不開,就先打開?http://mirror.bit.edu.cn/apache/zookeeper?, 再選擇版本。
在此目錄下載zookeeper安裝包:
[root@localhost local]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz3. 解壓:
[root@localhost local]# tar -zxvf zookeeper-3.4.13.tar.gz三、編輯配置文件
1.進(jìn)入conf目錄:
[root@localhost local]# cd zookeeper-3.4.13/conf2. 將zoo_sample.cfg這個(gè)文件復(fù)制為zoo.cfg (必須是這個(gè)文件名)
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg3. 進(jìn)入zoo.cfg文件進(jìn)行編輯
[root@localhost conf]# vim zoo.cfg4. 按 i 進(jìn)入編輯模式,修改以下內(nèi)容:
dataDir=/tmp/zookeeper/data dataLogDir=/tmp/zookeeper/log注意:如果想配置集群的話,請(qǐng)?jiān)赾lientPort下面添加服務(wù)器的ip。如
server.1=192.168.180.132:2888:3888
server.2=192.168.180.133:2888:3888
server.3=192.168.180.134:2888:3888
如果電腦內(nèi)存比較小,zookeeper還可以設(shè)置成偽集群。也就是全部服務(wù)器采用同一個(gè)ip,但是使用不同的端口。
5. 在tmp目錄創(chuàng)建目錄。
[root@localhost conf]# mkdir /tmp/zookeeper[root@localhost conf]# mkdir /tmp/zookeeper/data [root@localhost conf]# mkdir /tmp/zookeeper/log
?6.如果是配置集群,還需要在前面配置過的dataDir路徑下新增myid文件
[root@localhost conf]# cd /tmp/zookeeper/data[root@localhost data]# touch myid [root@localhost data]# vim myid
在data目錄下創(chuàng)建文件,文件名為“myid”, 編輯該“myid”文件,并在對(duì)應(yīng)的IP的機(jī)器上輸入對(duì)應(yīng)的編號(hào)。
如在192.168.180.132上,“myid”文件內(nèi)容就是1。在192.168.180.133上,內(nèi)容就是2。
四、配置環(huán)境變量
1.上面的操作都完事之后,我們需要配置一下環(huán)境變量,配置環(huán)境變量的命令如下:
[root@localhost zookeeper-3.4.13]# export ZOOKEEPER_INSTALL=/usr/local/zookeeper-3.4.13/ [root@localhost zookeeper-3.4.13]# export PATH=$PATH:$ZOOKEEPER_INSTALL/bin?
五、啟動(dòng)zookeeper
1.進(jìn)入bin目錄,并啟動(dòng)zookeep。如果不是在bin目錄下執(zhí)行,啟動(dòng)zookeeper時(shí)會(huì)報(bào)錯(cuò): bash: ./zkServer.sh:? No such file or directory
注意:??./zkServer.sh start前面的 .? 不可忽略。
[root@localhost local]# cd /usr/local/zookeeper-3.4.13/bin [root@localhost bin]# ./zkServer.sh start2.啟動(dòng)成功效果如下:
ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg Starting zookeeper ... STARTED3.zookeeper的服務(wù)端啟動(dòng)后,還需要啟動(dòng)zookeeper的客戶端:
[root@localhost bin]# ./zkCli.sh如果是連接多個(gè)不同的主機(jī)節(jié)點(diǎn),可以使用如下命令:
./zkCli.sh -server 192.168.180.132:2888啟動(dòng)成功效果如下:
Connecting to localhost:2181..........
..........
..........
Welcome to ZooKeeper! 2018-10-25 21:04:54,407 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1029] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error) JLine support is enabled 2018-10-25 21:04:54,471 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@879] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session [zk: localhost:2181(CONNECTING) 0] 2018-10-25 21:04:54,501 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1303] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x10000712e6f0000, negotiated timeout = 30000WATCHER::WatchedEvent state:SyncConnected type:None path:null
?
4.查看狀態(tài):
遇到問題怎么解決?
zookeeper的出錯(cuò)日志會(huì)記錄在?zookeeper.out。
當(dāng)前處于哪個(gè)目錄,執(zhí)行完zkServer.sh start命令,?zookeeper.out就會(huì)寫在哪個(gè)目錄。
vim zookeeper.out 可以查看報(bào)錯(cuò)信息。然后再搜索解決。
六、zookeeper使用
通過 ./zkCli.sh 進(jìn)入客戶端后,就可以使用命令來(lái)操作zookeeper了。
1.創(chuàng)建節(jié)點(diǎn)
使用create命令,可以創(chuàng)建一個(gè)zookeeper節(jié)點(diǎn)。
create [-s] ? [-e]? path? data? acl
其中-s表示順序節(jié)點(diǎn),-e表示臨時(shí)節(jié)點(diǎn)。默認(rèn)情況下,創(chuàng)建的是持久節(jié)點(diǎn)。
path是節(jié)點(diǎn)路徑,data是節(jié)點(diǎn)數(shù)據(jù),acl是用來(lái)進(jìn)行權(quán)限控制的。
如下:
創(chuàng)建一個(gè)叫做/zk-test的節(jié)點(diǎn),內(nèi)容是"123"
[zk: localhost:2181(CONNECTED) 0] create /zk-test 123Created /zk-test
創(chuàng)建/zk-test的子節(jié)點(diǎn)book,內(nèi)容是"233"
[zk: localhost:2181(CONNECTED) 7] create /zk-test/book 233 Created /zk-test/book?
2.查看節(jié)點(diǎn)內(nèi)容
使用get命令,可以獲取zookeeper指定節(jié)點(diǎn)的內(nèi)容和屬性信息。
如下:
[zk: localhost:2181(CONNECTED) 1] get /zk-test123 cZxid = 0x3a ctime = Sun Nov 11 21:50:44 CST 2018 mZxid = 0x3a mtime = Sun Nov 11 21:50:44 CST 2018 pZxid = 0x3a cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 3 numChildren = 0
3.查看子節(jié)點(diǎn)
使用ls命令可以查看指定節(jié)點(diǎn)下的所有子節(jié)點(diǎn)
以下查看根目錄下的所有子節(jié)點(diǎn):
[zk: localhost:2181(CONNECTED) 2] ls /[zk-test, zookeeper]
查看zk-test節(jié)點(diǎn)的子節(jié)點(diǎn):
[zk: localhost:2181(CONNECTED) 3] ls /zk-test[book]
?
4.更新節(jié)點(diǎn)內(nèi)容
使用set命令,更新節(jié)點(diǎn)內(nèi)容。格式為:
set?? path? data?
其中的data就是要更新的新內(nèi)容。
[zk: localhost:2181(CONNECTED) 4] set /zk-test 456cZxid = 0x3a ctime = Sun Nov 11 21:50:44 CST 2018 mZxid = 0x3b mtime = Sun Nov 11 22:05:20 CST 2018 pZxid = 0x3a cversion = 0 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 3 numChildren = 0在輸出的信息中,可以發(fā)現(xiàn),dataVersion的值由原來(lái)的0 變成了 1,這是因?yàn)閯偛诺母虏僮鲗?dǎo)致該節(jié)點(diǎn)的數(shù)據(jù)版本也發(fā)生變更。
6.刪除節(jié)點(diǎn)
使用delete命令來(lái)刪除節(jié)點(diǎn),如下:
[zk: localhost:2181(CONNECTED) 11] delete /zk-testNode not empty: /zk-test
可以發(fā)現(xiàn),一個(gè)節(jié)點(diǎn)存在子節(jié)點(diǎn)時(shí),無(wú)法刪除該節(jié)點(diǎn)。
刪除子節(jié)點(diǎn)/zk-test/book,如下:
[zk: localhost:2181(CONNECTED) 12] delete /zk-test/bookWATCHER::WatchedEvent state:SyncConnected type:NodeDeleted path:/zk-test/bookzookeeper中的watcher會(huì)監(jiān)控節(jié)點(diǎn),當(dāng)子節(jié)點(diǎn)發(fā)生變化時(shí)會(huì)發(fā)出通知。此時(shí)提示子節(jié)點(diǎn) /zk-test/book刪除成功。
繼續(xù)嘗試刪除節(jié)點(diǎn) /zk-test,
[zk: localhost:2181(CONNECTED) 13] ls /zk-test [] [zk: localhost:2181(CONNECTED) 14] delete /zk-test [zk: localhost:2181(CONNECTED) 15] ls / []刪除成功。
?
?
參考資料 :
《從Paxos到zookeeper分布式一致性原理與實(shí)踐》
https://blog.csdn.net/zknxx/article/details/52601554
https://blog.csdn.net/21aspnet/article/details/18990891
轉(zhuǎn)載于:https://www.cnblogs.com/xuningchuanblogs/p/11566240.html
總結(jié)
以上是生活随笔為你收集整理的liunx 安装 zookeeper(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式-Observer模式
- 下一篇: 转 推荐 33 个 IDEA 最牛配置,