搭建zookeeper管理集羣

Zookeeper集羣java

 

 

1、實驗環境linux

 

Zookeeper集羣環境安裝過程詳解apache

 

Zookeeper是一個分佈式開源框架提供了協調分佈式應用的基本服務它向外部應用暴露一組通用服務——分佈式同步Distributed Synchronization命名服務Naming Service集羣維護Group Maintenance簡化分佈式應用協調及其管理的難度提供高性能的分佈式服務。ZooKeeper自己能夠以單機模式安裝運行不過它的長處在於經過分佈式ZooKeeper集羣一個Leader多個Follower),基於必定的策略來保證ZooKeeper集羣的穩定性和可用性從而實現分佈式應用的可靠性。服務器

Zookeeper安裝和配置框架

Zookeeper有三種不一樣的運行環境包括單機環境、集羣環境和集羣僞分佈式環境。分佈式

環境準備ide

spacer.gif c1f9735b64c1df812fa6b2f8dbdef16b.png

1、修改主機名性能

 

2、配置/etc/hosts文件測試

 

#vi /etc/hostsurl

spacer.gif c815ebbe2e06454d66c8fe3e98f49838.png

安裝java jdk-7u65-linux-x64.gz

#tar zxf jdk-7u65-linux-x64.gz
#mv   jdk1.7.0_65/   /usr/local/java

編輯/etc/profile設置java的環境變量

 

#vi /etc/profile

 

export JAVA_HOME=/usr/local/java export PATH=$PATH:$JAVA_HOME/bin #source /etc/profile

 

#ln -s /usr/local/java/bin   /usr/bin
#java -version

spacer.gifc5eece4659539157fa44ac2cbd547db6.png

2、實驗步驟

zk01zk02zk03主機上安裝zookeeper

 

1、下載解壓zookeeper

 

下載地址 http://www.apache.org/dyn/closer.cgi/zookeeper

 #mkdir /data

#cd/data 

#tar  zxf   zookeeper-3.4.10.tar.gz 

#mv   zookeeper-3.4.10    zookeeper 

2、配置環境變量/etc/profile

#echo "export ZOOKEEPER_HOME=/data/zookeeper" >> /etc/profile

 

#echo "export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf" >> /etc/profile

#source/etc/profile                //使變量生效

 

3、集羣部署

Zookeeper集羣環境下只要一半以上的機器正常啓動了那麼Zookeeper服務將是可用的。所以署Zookeeper最好使用奇數臺機器這樣若是有5臺機器只要3臺正常工做則服務將正常使用。下面咱們將對Zookeeper的配置文件的參數進行設置

 

#cd /data/zookeeper/conf

#cp     zoo_sample.cfg   zoo.cfg

zk01上配置

#vi    zoo.cfg

spacer.gifc19fc9aa9ce2c05746b3a16d69a4c383.png

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

 

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

 

dataLogDir: log目錄, 一樣能夠是任意目錄. 若是沒有設置該參數, 將使用和dataDir相同的設置. 這裏沒設置日誌目 錄。此方法不推薦

 

clientPort: 監聽client鏈接的端口號

 

zk02上執行

 

#scp root@192.168.111.136:/data/zookeeper/conf/zoo.cfg/data/zookeeper/conf/

 

zk03上執行

 

#scproot@192.168.111.136:/data/zookeeper/conf/zoo.cfg /data/zookeeper/conf/

 

配置文件中server.id=host:port:port中的第一個port是從機器follower鏈接到主機器leader的端口號第二個port

 

是進行leadership選舉的端口號。 接下來在dataDir所指定的目錄下建立一個文件名爲myid的文件文件中的內容只有一行

 

爲本主機對應的id也就是server.id中的id。例如在服務器1中的myid的內容應該寫入1 id 被稱爲Server ID, 用來標識 服務器在集羣中的序號。同時每臺 ZooKeeper 服務器上, 都須要在數據目錄( dataDir 指定的目錄) 下建立一個 myid 

 

, 該文件只有一行內容, 即對應於每臺服務器的Server ID ZooKeeper 集羣中, 每臺服務器上的 zoo.cfg 配置文件內容一 致。 server.1  myid 文件內容就是 1。每一個服務器的 myid 內容都不一樣, 且須要保證和本身的 zoo.cfg 配置文件中

server.id=host:port:port id 值一致。

 

id 的範圍是 1 ~ 255

 

4.遠程複製分發安裝文件

 

zk01主機的zookeeper複製到另外兩臺主機中。 *主機修改datadir目錄下myidid 集羣模式中, 集羣中的每臺機器都須要 感知其它機器,  zoo.cfg 配置文件中, 能夠按照以下格式進行配置, 每一行表明一臺服務器配置。

server.id=host:port:port

 

server.1  myid 文件內容就是 "1"。每一個服務器的 myid 內容都不一樣, 且須要保證和本身的 zoo.cfg 配置文件

 

"server.id=host:port:port"  id 值一致。

 

zk01爲例

 

#mkdir  /data/zookeeper/data

 

#cd /data/zookeeper/data

 

#vi myid

 

1

 

zk02上執行

#scp root@localhost :/data/zookeeper/conf/zoo.cfg/data/zookeeper/conf/

zk03上執行

#scp root@localhost :/data/zookeeper/conf/zoo.cfg/data/zookeeper/conf/

5zk01,zk02,zk03啓動ZooKeeper

zk01上執行以下操做

#cd       /data/zookeeper/zookeeper/bin

#./zkServer.sh start                                                   //啓動zookeeper服務




 

4e0d70a072d4a83b8df5cb96643cb52b.png

在 zk02上執行以下操做

 45fec039a577e43b5d9325f79fb3eeda.png

在 zk03上執行以下操做

 47dba8e7fc28e4c6f76c9e1c432fc566.png

6、檢查zookeeper啓動是否成功 

zk01上操做

#jps

fee35728ff98e40314ed0afcd202a6ed.png

其中QuorumPeerMainzookeeper進程啓動正常。 如上依次啓動了全部機器上的Zookeeper以後能夠經過ZooKeeper

 

腳原本查看啓動狀態包括集羣中各個結點的角色或是Leader或是Follower),以下所示是在ZooKeeper集羣中的每

 

個結點上查詢的結果

在 zk01上執行 查看zookeeper狀態

3b6e8ddb872e68774fd59989a894010b.png

在 zk02上執行

 deb74fb950180640b35b7d87a3c5a3c9.png

在 zk03上執行





030bd5001b6e2bb284271c0490495242.png

經過上面狀態查詢結果可見zk02是集羣的Leader其他的兩個結點是Follower 另外接到ZooKeeper集羣上。對於客戶

 

端來講ZooKeeper是一個總體ensemble),鏈接到獨享整個集羣的服務因此你能夠在任何一個結點上創建到服務

 

集羣的鏈接例如

 

7、集羣測試

 dd3aa470a55ff4543faeea85fbf7f6a5.png 

zookeeper集羣搭建完畢!!!

相關文章
相關標籤/搜索