初步認識zookeeper

謎一樣的Coder發表於2018-09-02

前言

之前在dubbo的入門的文章中,用到過zookeeper,但是是建立在偽分散式環境下的,這次是對zookeeper的系統化學習,打算在真實的分散式環境下搭建zookeeper叢集,其實也沒什麼難的,也就是一些配置檔案的設定而已,偏使用居多。

zookeeper的安裝

準備環境

在本地vmware中搭建了三臺linux的虛擬機器。保證每臺虛擬機器jdk安裝正常。至於怎麼安裝,用yum就可以搞定。這裡就不詳細討論了。

這裡三臺虛擬機器ip地址分別是192.168.2.128,192.168.2.129,192.168.2.130

主要介紹zookeeper在linux下的安裝

1、去zookeeper官網下載zookeeper的壓縮包,傳送門:zookeeper下載

2、解壓安裝包,解壓命令——tar -zxvf  zookeeper.tar.gz

 (用黑色框框遮住了個人姓名......)

叢集搭建

1、將zookeeper的配置檔案zoo_sample.cfg 拷貝一份,命名為zoo.cfg

2、修改配置檔案zoo.cfg

# 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.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
#資料持久化路徑
dataDir=/data/zookeeper

#日誌檔案存放路徑
dataLogDir=/data/zookeeper/log

# the port at which the clients will connect
clientPort=2181

# the maximum number of client connections.
# increase this if you need to handle more clients
#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

#叢集的ip和主機配置(主機名,心跳埠,備用埠)
server.1=192.168.2.128:2888:3888
server.2=192.168.2.129:2888:3888
server.3=192.168.2.130:2888:3888

其實需要修改的地方也不多,針對其中的相關屬性,會在後面幾篇部落格中去總結,這裡主要修改了日誌存放的路徑和資料持久化的路徑

最重要的配置是最後幾行

#叢集的ip和主機配置(主機名,心跳埠,備用埠)
server.1=192.168.2.128:2888:3888
server.2=192.168.2.129:2888:3888
server.3=192.168.2.130:2888:3888

server.伺服器ID=伺服器IP地址:伺服器之間通訊埠:伺服器之間投票選舉埠

3、建立myid檔案

在zookeeper目錄下建立myid檔案(不同的版本,可能要求myid所在的目錄不同),這個檔案的目的就是標記伺服器id,在檔案中只需要輸入一個數字即可

在192.168.2.128的虛擬機器下建立的myid檔案,其中就儲存1即可,其他另外兩個虛擬機器同樣操作即可,需要保持與上面的叢集ip配置一致。

4、關閉防火牆

防火牆還是要關的,否則會出現主機無法訪問的問題,關閉防火牆的命令(CentOS 7)—— systemctl stop firewalld.service

5、啟動zookeeper

在bin目錄中執行sh zkServer.sh start (可以配置環境變數之後,在任意目錄下啟動都可以)

6、檢視zookeeper的狀態

執行sh zkServer.sh status,即可看到相關的狀態,這裡是以192.168.2.128主機為例,可以看到其目前是一個follower節點。

 這個時候也可以去檢視zookeeper的日誌檔案,看到相應的狀態。

 

相關文章