ZooKeeper部署

Zookeeper整體結構

Zookeeper服務自身組成一個集羣(2n+1個服務容許n個失效)。Zookeeper服務有兩個角色,一個是leader,負責寫服務和數據同步,剩下的是follower,提供讀服務,leader失效後會在follower中從新選舉新的leader。java

Zookeeper邏輯圖以下,apache

1.jpg

  1. 客戶端能夠鏈接到每一個server,每一個server的數據徹底相同。服務器

  2. 每一個follower都和leader有鏈接,接受leader的數據更新操做。ide

  3. Server記錄事務日誌和快照到持久存儲。測試

  4. 大多數server可用,總體服務就可用。ui

Zookeeper數據模型

Zookeeper表現爲一個分層的文件系統目錄樹結構(不一樣於文件系統的是,節點能夠有本身的數據,而文件系統中的目錄節點只有子節點)。spa

數據模型結構圖以下,3d

2.png

圓形節點能夠含有子節點,多邊形節點不能含有子節點。一個節點對應一個應用,節點存儲的數據就是應用須要的配置信息。日誌

Zookeeper 特色

  • 順序一致性:按照客戶端發送請求的順序更新數據。server

  • 原子性:更新要麼成功,要麼失敗,不會出現部分更新。

  • 單一性 :不管客戶端鏈接哪一個server,都會看到同一個視圖。

  • 可靠性:一旦數據更新成功,將一直保持,直到新的更新。

  • 及時性:客戶端會在一個肯定的時間內獲得最新的數據。

 

Zookeeper集羣的安裝,節點數2*n+1,

 

  • tickTime: zookeeper中使用的基本時間單位, 毫秒值.

  • dataDir: 數據目錄. 能夠是任意目錄.

  • dataLogDir: log目錄, 一樣能夠是任意目錄. 若是沒有設置該參數, 將使用和dataDir相同的設置.

  • clientPort: 監聽client鏈接的端口號.

、準備Zookeeper環境

配置java環境變量:

vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.7.0_45

export ZOOKEEPER_HOME=/usr/local/zookeeper

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$ZOOKEEPER_HOME/lib

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin:$ZOOKEEPER_HOME/bin

rpm安裝jdk路徑:export JAVA_HOME=/usr/java/jdk1.7.0_45

配置hostname:

vi /etc/profile

172.16.23.195zookeeper1

172.16.23.196zookeeper2

reboot

2、配置zookeeper

Wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/

tar –xvzf zookeeper-3.3.6.tar.gz

mv /zookeeper-3.3.6 /usr/local/zookeeper

cd /usr/local/zookeeper/conf

mv mv zoo_sample.cfg zoo.cfg

vi zoo.cfg

添加如下內容zookeeper集羣:

server.1= zookeeper1:2888:3888

server.2= zookeeper1:2888:3888

標識Server ID:

cd /tmp/zookeeper

touch myid

1

其它zookeeper服務器配置步驟相同,更改myid值。

啓動zookeeper:

/usr/local/zookeeper/bin/zkServer.sh start

查看啓動狀態:

/usr/local/zookeeper/bin/zkServer.sh status

093140221.png

093142542.png

 

啓動客戶端腳本:

zkCli.sh -server  zookeeper1:2181

顯示根目錄下、文件:
ls / 

093204739.png

建立文件,並設置初始內容:
create /test 1註釋:1爲賦值。

獲取文件內容:
get /test

093230989.png

測試集羣效果,登陸另外一臺zookeeper

zkCli.sh -server  zookeeper2:2181

ls /

093250609.png

正確顯示新建節點test,集羣正常。

修改文件內容:
set /test 2

刪除文件:
delete /test

退出客戶端:
quit 

相關文章
相關標籤/搜索