zookeeper for linux下載安裝
一、下載zookeeper源碼包
[root@localhost ~]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
二、解壓
[root@localhost ~]# tar -zxvf zookeeper-3.4.14.tar.gz
三、進入conf目錄
[root@localhost ~]# cd zookeeper-3.3.6/conf/ [root@localhost conf]# ls configuration.xsl log4j.properties zoo_sample.cfg
四、拷貝zoo_samle.cfg為zoo.cfg
[root@localhost conf]# cp zoo_sample.cfg zoo.cfg [root@localhost conf]# ls configuration.xsl log4j.properties zoo.cfg zoo_sample.cfg
五、編輯zoo.cfg
[root@localhost conf]# vi zoo.cfg
1、單機模式:不做集群,內容如下(data目錄需改成你真實輸出目錄):
# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. dataDir=/usr/local/mycrosoftware/zookeeper/zookeeper-3.4.14/data dataLogDir=/usr/local/mycrosoftware/zookeeper/zookeeper-3.4.14/log # the port at which the clients will connect clientPort=2181
2、集群模式:要做集群,內容如下(dataDir目錄和server地址需改成你真實部署機器的信息):目前並未測試
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/root/zookeeper-3.3.6/data clientPort=2181 server.0=192.168.0.109:2555:3555 server.1=192.168.0.110:2555:3555 server.2=192.168.0.111:2555:3555
並在data目錄下放置myid文件:(上面zoo.cfg中的dataDir)
mkdir data vi myid
myid指明自己的id,對應上面zoo.cfg中server.后的數字,第一台的內容為1,第二台的內容為2,內容如下
1
六、啟動
[root@localhost bin]# ./zkServer.sh start JMX enabled by default Using config: /root/zookeeper-3.3.6/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
七、測試
[root@localhost bin]# ./zkCli.sh -server 127.0.0.1:2181
八、查看zookeeper
[root@localhost bin]# ps -aux | grep 'zookeeper' #查看進程 netstat -anp|grep 2181 #查看zookeeper的端口號命令 bin/zkServer.sh stop #zookeeper 的停止命令 bin/zkServer.sh status #zookeeper 的狀態查看命令
運行配置的作用
initLimit
ZooKeeper集群模式下包含多個zk進程,其中一個進程為leader,余下的進程為follower。
當follower最初與leader建立連接時,它們之間會傳輸相當多的數據,尤其是follower的數據落后leader很多。initLimit配置follower與leader之間建立連接后進行同步的最長時間。
syncLimit
配置follower和leader之間發送消息,請求和應答的最大時間長度。
tickTime
tickTime則是上述兩個超時配置的基本單位,例如對於initLimit,其配置值為5,說明其超時時間為 2000ms * 5 = 10秒。
dataLogDir
dataLogDir指定的路徑是事務日志保存路徑
dataDir
dataDir指定的路徑是快照保存路徑,當沒有指定dataLogDir路徑時,事務日志也會保存在該目錄下
server.id=host:port1:port2
其中id為一個數字,表示zk進程的id,這個id也是dataDir目錄下myid文件的內容。
host是該zk進程所在的IP地址,port1表示follower和leader交換消息所使用的端口,port2表示選舉leader所使用的端口。
其配置的含義跟單機模式下的含義類似,不同的是集群模式下還有一個myid文件。myid文件的內容只有一行,且內容只能為1 - 255之間的數字,這個數字亦即上面介紹server.id中的id,表示zk進程的id。
注意
如果僅為了測試部署集群模式而在同一台機器上部署zk進程,server.id=host:port1:port2配置中的port參數必須不同。但是,為了減少機器宕機的風險,強烈建議在部署集群模式時,將zk進程部署不同的物理機器上面。
博客參考:https://blog.csdn.net/qq_27739989/article/details/78078431
======================================================
2019/11/7 集群測試
准備工作:一台物理機,創建兩台虛擬機。
第一步,拷貝zookeeper的tar.gz,進入zookeeper目錄,可以看到zookeeper安裝包
cd /usr/local/mycrosoftware/zookeeper
命令跨服務器拷貝,然后輸入128服務器的密碼,就會自動拷貝到128服務器的mysoftware目錄中,然后進行解壓
跨服務拷貝 scp -r -P 22 zookeeper-3.4.14.tar.gz root@192.168.64.128:/usr/locFal/mycrosoftware
解壓命令 tar -zxvf zookeeper-3.4.14.tar.gz
zookeeper需要依賴jdk,所以需要先在28上安裝jdk,jdk安裝步驟另外一篇博客有。
修改zoo.cfg
創建myid
mkdir data vi myid
啟動zookeeper
[root@localhost bin]# ./zkServer.sh start JMX enabled by default Using config: /root/zookeeper-3.3.6/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
集群測試:
登錄zookeeper
./zkCli.sh -server 192.168.64.129:2181
查看節點命令:
ls /
ls /dubbo
創建節點
create /node_group testnode
登錄另外一台集群,查看節點,發現多了一個129虛擬機創建的節點。
./zkCli.sh -server 192.168.64.128:2181
查看節點信息
get /node_group
檢查狀態 stat,與 get 的區別是,不列出 znode 的值。
stat /node_group
修改節點的值 set
set /node_group new_node_group
刪除節點.刪除 /node_group,不會返回任何內容。如果有子節點的時候,連帶子節點也一起刪除。
rmr /node_group