linux下安裝zookeeper
一、安裝條件
??想要安裝zookeeper,必須先在linux中安裝好jdk,
二、下載并解壓zookeeper壓縮包
1、先進入/usr/local/目錄
[root@localhost /]# cd /usr/local
2、 zookeeper安裝包可以在官網下載,
??先打開 http://mirror.bit.edu.cn/apache/zookeeper , 再選擇版本,
[root@localhost local]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
3、解壓
[root@localhost local]# tar -zxvf zookeeper-3.4.14.tar.gz
三、編輯組態檔
1、進入conf目錄
[root@localhost local]# cd zookeeper-3.4.14/conf
2、將zoo_sample.cfg這個檔案復制為zoo.cfg (必須是這個檔案名)
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg
3、進入zoo.cfg檔案進行編輯
[root@localhost conf]# vim zoo.cfg
4、按 i 進入編輯模式,修改以下內容:
dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/log
注意:如果想配置集群的話,請在clientPort下面添加服務器的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
如果電腦記憶體比較小,zookeeper還可以設定成偽集群,也就是全部服務器采用同一個ip,但是使用不同的埠,
5、在tmp目錄創建目錄,
[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目錄下創建檔案,檔案名為“myid”, 編輯該“myid”檔案,并在對應的IP的機器上輸入對應的編號,
如在192.168.180.132上,“myid”檔案內容就是1,在192.168.180.133上,內容就是2,
四、配置環境變數
1、上面的操作都完事之后,我們需要配置一下環境變數,配置環境變數的命令如下:
[root@localhost zookeeper-3.4.13]# export ZOOKEEPER_INSTALL=/usr/local/zookeeper-3.4.14/
[root@localhost zookeeper-3.4.13]# export PATH=$PATH:$ZOOKEEPER_INSTALL/bin
五、啟動zookeeper
1、進入bin目錄,并啟動zookeep,如果不是在bin目錄下執行,啟動zookeeper時會報錯: bash: ./zkServer.sh: No such file or directory
注意: ./zkServer.sh start前面的 . 不可忽略,
[root@localhost local]# cd /usr/local/zookeeper-3.4.14/bin
[root@localhost bin]# ./zkServer.sh start
2、啟動成功效果如下:
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
3、zookeeper的服務端啟動后,還需要啟動zookeeper的客戶端:
[root@localhost bin]# ./zkCli.sh
如果是連接多個不同的主機節點,可以使用如下命令:
./zkCli.sh -server 192.168.180.132:2888
啟動成功效果如下:
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 = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
4、查看狀態:
[root@localhost bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: standalone
5、遇到問題怎么解決?
zookeeper的出錯日志會記錄在 zookeeper.out,
當前處于哪個目錄,執行完zkServer.sh start命令, zookeeper.out就會寫在哪個目錄,
vim zookeeper.out 可以查看報錯資訊,然后再搜索解決,
六、zookeeper使用
??通過 ./zkCli.sh 進入客戶端后,就可以使用命令來操作zookeeper了,
1、創建節點
使用create命令,可以創建一個zookeeper節點,
create [-s] [-e] path data acl
其中-s表示順序節點,-e表示臨時節點,默認情況下,創建的是持久節點,
path是節點路徑,data是節點資料,acl是用來進行權限控制的,
如下:
創建一個叫做/zk-test的節點,內容是"123"
[zk: localhost:2181(CONNECTED) 0] create /zk-test 123
Created /zk-test
創建/zk-test的子節點book,內容是"233"
[zk: localhost:2181(CONNECTED) 7] create /zk-test/book 233
Created /zk-test/book
2、查看節點內容
使用get命令,可以獲取zookeeper指定節點的內容和屬性資訊,
如下:
[zk: localhost:2181(CONNECTED) 1] get /zk-test
123
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、查看子節點
使用ls命令可以查看指定節點下的所有子節點
以下查看根目錄下的所有子節點:
[zk: localhost:2181(CONNECTED) 2] ls /
[zk-test, zookeeper]
查看zk-test節點的子節點:
[zk: localhost:2181(CONNECTED) 3] ls /zk-test
[book]
4、更新節點內容
使用set命令,更新節點內容,格式為:
set path data
其中的data就是要更新的新內容,
[zk: localhost:2181(CONNECTED) 4] set /zk-test 456
cZxid = 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
在輸出的資訊中,可以發現,dataVersion的值由原來的0 變成了 1,這是因為剛才的更新操作導致該節點的資料版本也發生變更,
5、洗掉節點
使用delete命令來洗掉節點,如下:
[zk: localhost:2181(CONNECTED) 11] delete /zk-test
Node not empty: /zk-test
可以發現,一個節點存在子節點時,無法洗掉該節點,
洗掉子節點/zk-test/book,如下:
[zk: localhost:2181(CONNECTED) 12] delete /zk-test/book
WATCHER::
WatchedEvent state:SyncConnected type:NodeDeleted path:/zk-test/book
zookeeper中的watcher會監控節點,當子節點發生變化時會發出通知,此時提示子節點 /zk-test/book洗掉成功,
繼續嘗試洗掉節點 /zk-test,
[zk: localhost:2181(CONNECTED) 13] ls /zk-test
[]
[zk: localhost:2181(CONNECTED) 14] delete /zk-test
[zk: localhost:2181(CONNECTED) 15] ls /
[]
洗掉成功,
開機自啟
touch /var/lock/subsys/local
export JAVA_HOME=/usr/local/jdk1.8.0_221
#/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
/usr/local/zookeeper-3.4.14/bin/zkServer.sh start
/usr/local/apache-tomcat-9.0.0.M6/bin/startup.sh
nohup /usr/local/minio server /mnt/minio &
nohup wssh --address='0.0.0.0' --port=9988 &
#/usr/local/nginx/sbin/nginx
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/144249.html
標籤:Java
下一篇:客車網上售票系統01
