zookeeper概念和部署
阿新 • • 發佈:2019-02-16
1.Zookeeper概念簡介
Zookeeper是一個分散式協調服務;就是為使用者的分散式應用程式提供協調服務
A、zookeeper是為別的分散式程式服務的
B、Zookeeper本身就是一個分散式程式(只要有半數以上節點存活,zk就能正常服務)
C、Zookeeper所提供的服務涵蓋:主從協調、伺服器節點動態上下線、統一配置管理、分散式共享鎖、統一名稱服務……
D、雖然說可以提供各種服務,但是zookeeper在底層其實只提供了兩個功能:
1.管理(儲存,讀取)使用者程式提交的資料
2.併為使用者程式提供資料節點監聽服務
Zookeeper叢集的角色: Leader 和 follower (Observer) 只要叢集中有半數
所以zookeeper適合裝在奇數臺機器上!!!
2.zookeeper叢集安裝
2.1 前置條件
奇數臺計算機或虛擬機器(這裡使用docker) 安裝好jdk(docker exec進入docker.並安裝好jdk)
2.2 下載並解壓zookeeper
ps:這裡以zookeeper-3.4.5.tar.gz為例
tar -zxvf zookeeper-3.4.5.tar.gz -C /etc/local/
cd /etc/local
mv zookeeper-3.4.5 zookeeper
2.3 修改環境變數(配置檔案不要放在/etc/profile下面.因為docker啟動是bash而不是login shell,不會自動載入/etc/profile)
vim /etc/bashrc
增加以下變數:
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
最後
source /etc/profile
2.4 修改配置
cd $ZOOKEEPER_HOME/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
增加如下內容:
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
server.1=zk1:2888:3888
server.2 =zk2:2888:3888
server.3=zk3:2888:3888
建立資料夾:
cd /usr/local/zookeeper/
mkdir -m 755 data
mkdir -m 755 log
在data資料夾下新建myid檔案
cd data
vi myid
增加內容:
1
2.4 分發到其他叢集中(其他叢集配置PATH也可以分發/etc/profile)
scp -r /usr/local/zookeeper root@zk2:/usr/local/
scp -r /usr/local/zookeeper root@zk3:/usr/local/
2.5 修改所有叢集中的myid
到zk2上:修改myid為:2
到zk3上:修改myid為:3
2.6 啟動(每臺機器)
zkServer.sh start
2.7 檢視叢集狀態
jps
zkServer.sh status(檢視叢集狀態,主從資訊)
當然,最終執行在容器之中.可以commit容器。得到映象,放置資料丟失