1. 程式人生 > 其它 >ZooKeeper叢集部署 JDK的安裝配置(Windows、Linux)

ZooKeeper叢集部署 JDK的安裝配置(Windows、Linux)

Zookeeper的介紹

  • ZooKeeper主要服務於分散式系統,可以用ZooKeeper來做:統一配置管理、統一命名服務、分散式鎖、叢集管理。
  • 使用分散式系統就無法避免對節點管理的問題(需要實時感知節點的狀態、對節點進行統一管理等等),而由於這些問題處理起來可能相對麻煩和提高了系統的複雜性,ZooKeeper作為一個能夠通用解決這些問題的中介軟體就應運而生了。

zookeeper的選舉策略也是需要半數以上的節點同意才能當選leader,如果是偶數節點可能導致票數相同的情況,所以Zookeeper做叢集最好部署3,5,7個節點。 

Zookeeper包下載地址:http://zookeeper.apache.org/releases.html#download

 或 http://archive.apache.org/dist/zookeeper/

服務規劃

Zookeeper部署

1.關閉防火牆和SELinux(所有裝置)

systemctl stop firewalld.service

systemctl disable firewalld.service

setenforce 0               

vi /etc/selinux/config   

SELINUX=enforcing改為SELINUX=disabled

2.安裝JDK

zookeeper是由java開發,所以需要有JDK 1.6以上的執行環境支援,JDK的部署可參考JDK的安裝配置(Windows、Linux)

3.配置IP地址和主機名之間的對映(所有裝置)

vim /etc/hosts

192.168.36.152 node1
192.168.36.153 node2
192.168.36.154 node3

4.配置主機名(所有裝置)

vim /etc/sysconfig/network

network=主機名

需重啟裝置使配置生效:init 6

5.安裝Zookeeper(192.168.36.152)

先在一臺裝置上部署  

解壓安裝包

tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz -C /usr/local/

修改Zookeeper配置檔案

cd /usr/local/apache-zookeeper-3.8.0-bin/conf/

cp zoo_sample.cfg zoo.cfg

vim zoo.cfg

#資料檔案目錄
dataDir=/usr/local/apache-zookeeper-3.8.0-bin/data  
#Zookeeper客戶端連線埠	
clientPort=2181                           
#叢集服務地址,2888為zookeeper叢集內通訊埠,Leader監聽此埠
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
#保留3個快照
autopurge.snapRetainCount=3   
#1小時清理一下日誌      
autopurge.purgeInterval=1            

mkdir /usr/local/apache-zookeeper-3.8.0-bin/data

將Zookeeper拷貝至其他節點

scp -r /usr/local/apache-zookeeper-3.8.0-bin/ root@node2:/usr/local/

scp -r /usr/local/apache-zookeeper-3.8.0-bin/ root@node3:/usr/local/

6.配置Zookeeper的id(所有裝置)

cd /usr/local/apache-zookeeper-3.8.0-bin/data

vi myid

#myid對應zoo.cfg配置檔案裡相應的server號,node1也就會是1,node2是2,node3則是3
1

7.啟動Zookeeper(所有裝置)

cd /usr/local/apache-zookeeper-3.8.0-bin/bin

./zkServer.sh start

ZooKeeper JMX enabled by default
Using config: /usr/local/apache-zookeeper-3.8.0-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

三臺zookeeper啟動後再檢視zookeeper狀態,可以看到我是node2被選舉為了leader

[root@node2 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/apache-zookeeper-3.8.0-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader

[root@node1 bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/apache-zookeeper-3.8.0-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

jps命令檢視,看到QuorumPeerMain即可,QuorumPeerMain是zookeeper叢集的啟動類,用來載入配置啟動QuorumPeer執行緒的

10451 QuorumPeerMain         
10622 Jps