前提:已安裝JDK環境
Zookeeper下載
鏈接:https://pan.baidu.com/s/1BRw6cZpe949UpTqQZ7QX7A
提取碼:tdjs
解壓
> tar -xf apache-zookeeper-3.6.1-bin.tar.gz
修改配置文件
> cd conf
> cp zoo_sample.cfg zoo.cfg
修改參數
dataDir=/owl/data/zookeeper-3.6.1/2180
dataLogDir=/owl/data/zookeeper-3.6.1/2180/log
logDir=/owl/log/zookeeper-3.6.1/2180
admin.enableServer=false
# 集羣配置 IP:follower和leader交換消息所使用的端口:選舉leader所使用的端口
server.1=0.0.0.0:2887:3887
server.2=0.0.0.0:2888:3888
server.3=0.0.0.0:2889:3889
複製2份,修改zoo.cfg
dataDir=/owl/data/zookeeper-3.6.1/2181
dataLogDir=/owl/data/zookeeper-3.6.1/2181/log
logDir=/owl/log/zookeeper-3.6.1/2181
admin.enableServer=false
# 集羣配置 IP:follower和leader交換消息所使用的端口:選舉leader所使用的端口
server.1=0.0.0.0:2887:3887
server.2=0.0.0.0:2888:3888
server.3=0.0.0.0:2889:3889
dataDir=/owl/data/zookeeper-3.6.1/2182
dataLogDir=/owl/data/zookeeper-3.6.1/2182/log
logDir=/owl/log/zookeeper-3.6.1/2182
admin.enableServer=false
# 集羣配置 server.節點標識=IP:follower和leader交換消息所使用的端口:選舉leader所使用的端口
server.1=0.0.0.0:2887:3887
server.2=0.0.0.0:2888:3888
server.3=0.0.0.0:2889:3889
標識節點
在dataDir目錄下新建myid,並寫入節點ID
> echo 1>/owl/data/zookeeper-3.6.1/2180/myid
> echo 2>/owl/data/zookeeper-3.6.1/2181/myid
> echo 3>/owl/data/zookeeper-3.6.1/2182/myid
建立啓停腳本
# start_2180.sh 單節點啓動
cd /owl/soft/zookeeper-3.6.1/2180/bin
./zkServer.sh start
# start_2181.sh 單節點啓動
cd /owl/soft/zookeeper-3.6.1/2181/bin
./zkServer.sh start
# start_2182.sh 單節點啓動
cd /owl/soft/zookeeper-3.6.1/2182/bin
./zkServer.sh start
# stop_2180.sh 單節點關閉
cd /owl/soft/zookeeper-3.6.1/2180/bin
./zkServer.sh stop
# stop_2181.sh 單節點關閉
cd /owl/soft/zookeeper-3.6.1/2181/bin
./zkServer.sh stop
# stop_2182.sh 單節點關閉
cd /owl/soft/zookeeper-3.6.1/2182/bin
./zkServer.sh stop
# start_cluster.sh 集羣啓動
cd /owl/soft/zookeeper-3.6.1/2180/bin
./zkServer.sh start
cd /owl/soft/zookeeper-3.6.1/2181/bin
./zkServer.sh start
cd /owl/soft/zookeeper-3.6.1/2182/bin
./zkServer.sh start
# stop_cluster.sh 集羣關閉
cd /owl/soft/zookeeper-3.6.1/2180/bin
./zkServer.sh stop
cd /owl/soft/zookeeper-3.6.1/2181/bin
./zkServer.sh stop
cd /owl/soft/zookeeper-3.6.1/2182/bin
./zkServer.sh stop
# status_cluster.sh 集羣各節點狀態查看
cd /owl/soft/zookeeper-3.6.1/2180/bin
./zkServer.sh status
cd /owl/soft/zookeeper-3.6.1/2181/bin
./zkServer.sh status
cd /owl/soft/zookeeper-3.6.1/2182/bin
./zkServer.sh status
# conn_2180.sh 連接單節點
cd /owl/soft/zookeeper-3.6.1/2180/bin
./zkCli.sh -server *.*.*.*:2180
# conn_2181.sh 連接單節點
cd /owl/soft/zookeeper-3.6.1/2181/bin
./zkCli.sh -server *.*.*.*:2181
# conn_2182.sh 連接單節點
cd /owl/soft/zookeeper-3.6.1/2182/bin
./zkCli.sh -server *.*.*.*:2182
# conn_cluster.sh 連接集羣
cd /owl/soft/zookeeper-3.6.1/2180/bin
./zkCli.sh -server *.*.*.*:2180,*.*.*.*:2181,*.*.*.*:2182
啓動Zookeeper集羣
> ./start_cluster.sh
/owl/soft/jdk-1.8.0/bin/java
ZooKeeper JMX enabled by default
Using config: /owl/soft/zookeeper-3.6.1/2180/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
/owl/soft/jdk-1.8.0/bin/java
ZooKeeper JMX enabled by default
Using config: /owl/soft/zookeeper-3.6.1/2181/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
/owl/soft/jdk-1.8.0/bin/java
ZooKeeper JMX enabled by default
Using config: /owl/soft/zookeeper-3.6.1/2182/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
查看各節點狀態
> ./status_cluster.sh
/owl/soft/jdk-1.8.0/bin/java
ZooKeeper JMX enabled by default
Using config: /owl/soft/zookeeper-3.6.1/2180/bin/../conf/zoo.cfg
Client port found: 2180. Client address: localhost.
Mode: follower
/owl/soft/jdk-1.8.0/bin/java
ZooKeeper JMX enabled by default
Using config: /owl/soft/zookeeper-3.6.1/2181/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
/owl/soft/jdk-1.8.0/bin/java
ZooKeeper JMX enabled by default
Using config: /owl/soft/zookeeper-3.6.1/2182/bin/../conf/zoo.cfg
Client port found: 2182. Client address: localhost.
Mode: follower
測試集羣
2180節點創建test節點
> ./conn_2180.sh
[zk: ****:2180(CONNECTED) 0] create /test Hello,zookeeper!
Created /test
[zk: ****:2180(CONNECTED) 0] get /test
Hello,zookeeper!
2181節點下查看是否同步成功
> ./conn_2181.sh
[zk: ****:2181(CONNECTED) 0] get /test
Hello,zookeeper!
安裝可視化工具
IDEA插件
ZKUI工具
下載ZKUI源碼
> git clone [email protected]:DeemOpen/zkui.git
配置連接參數config.cfg
serverPort=9090
zkServer=0.0.0.0:2180,0.0.0.0:2181,0.0.0.0:2182
userSet = {"users": [{ "username":"admin" , "password":"manager","role": "ADMIN" },{ "username":"appconfig" , "password":"appconfig","role": "USER" }]}
Maven打包
> mvn clean install
部署啓動
zkui-2.0-SNAPSHOT-jar-with-dependencies和config.cfg放同級目錄
> nohup java -jar zkui-2.0-SNAPSHOT-jar-with-dependencies.jar &
使用admin賬號登錄查看
默認密碼爲manager
zookeeper命令
create /path data 創建一個名爲/path的zNode節點,幷包含數據data
delete /path 刪除名爲/path的zNode節點
exists /path 檢查是否存在名爲/path的zNode節點
setData /path data 設置名爲/path的zNode的數據爲data
getData /path 返回名爲/path的zNode節點的數據信息
getChildren /path 返回所有/path節點的所有子節點列表