1. 程式人生 > >zookeeper概念和部署

zookeeper概念和部署

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容器。得到映象,放置資料丟失