天天看點

Zookeeper,也要接觸起來啦

分布式的東東,就是部署也友善,但管理,想法,大叢集應用是要點。。。!

參考如下url簡單實作 ,以後應用時多留意。

http://blog.csdn.net/shirdrn/article/details/7183503

http://www.dataguru.cn/article-3292-1.html

Zookeeper,也要接觸起來啦

前言

zookeeper是hadoop家族的一款高性能的分布式協作的産品。在單機中,系統協作大都是程序級的操作。分布式系統中,服務協作都是跨服務 器才能完成的。在zookeeper之前,我們對于協作服務大都使用消息中間件,随着分布式系統的普及,用消息中間件完成協作,會有大量的程式開發。 zookeeper直接面向于分布式系統,可以減少我們自己的開發,幫助我們更好完成分布式系統的資料管理問題。

目錄

zookeeper介紹

zookeeper單節點安裝

zookeeper僞分布式叢集安裝

zookeeper指令行操作

java程式設計現實指令行操作

zookeeper是一個為分布式應用所設計的分布的、開源的協調服務,它主要是用來解決分布式應用中經常遇到的一些資料管理問題,簡化分布式應用 協調及其管理的難度,提供高性能的分布式服務。zookeeper本身可以以standalone模式安裝運作,不過它的長處在于通過分布式 zookeeper叢集(一個leader,多個follower),基于一定的政策來保證zookeeper叢集的穩定性和可用性,進而實作分布式應用 的可靠性。

zookeeper是作為分布式協調服務,是不需要依賴于hadoop的環境,也可以為其他的分布式環境提供服務。

zookeeper分布式模式安裝(zookeeper叢集)也比較容易,這裡說明一下基本要點。

下面說明分布式模式的安裝配置,過程如下所示:

第一步:主機名稱到ip位址映射配置

zookeeper叢集中具有兩個關鍵的角色:leader和follower。叢集中所有的結點作為一個整體對分布式應用提供服務,叢集中每個結點之間都互相連接配接,是以,在配置的zookeeper叢集的時候,每一個結點的host到ip位址的映射都要配置上叢集中其它結點的映射資訊。

例如,我的zookeeper叢集中每個結點的配置,以slave-01為例,/etc/hosts内容如下所示:

192.168.0.179   slave-01  

192.168.0.178   slave-02  

192.168.0.177   slave-03  

zookeeper采用一種稱為leader election的選舉算法。在整個叢集運作過程中,隻有一個leader,其他的都是follower,如果zookeeper叢集在運作過程中leader出了問題,系統會采用該算法重新選出一個leader。是以,各個結點之間要能夠保證互相連接配接,必須配置上述映射。

第二步:修改zookeeper配置檔案

在其中一台機器(slave-01)上,解壓縮zookeeper-3.3.4.tar.gz,修改配置檔案conf/zoo.cfg,内容如下所示:

ticktime=2000  

datadir=/home/hadoop/storage/zookeeper  

clientport=2181  

initlimit=5  

synclimit=2  

server.1=slave-01:2888:3888  

server.2=slave-02:2888:3888  

server.3=slave-03:2888:3888  

第三步:遠端複制分發安裝檔案

上面已經在一台機器slave-01上配置完成zookeeper,現在可以将該配置好的安裝檔案遠端拷貝到叢集中的各個結點對應的目錄下:

cd /home/hadoop/installation/  

scp -r zookeeper-3.3.4/ hadoop@slave-02:/home/hadoop/installation/  

scp -r zookeeper-3.3.4/ hadoop@slave-03:/home/hadoop/installation/  

第四步:設定myid

在我們配置的datadir指定的目錄下面,建立一個myid檔案,裡面内容為一個數字,用來辨別目前主機,conf/zoo.cfg檔案中配置的server.x中x為什麼數字,則myid檔案中就輸入這個數字,例如:

hadoop@slave-01:~/installation/zookeeper-3.3.4$ echo "1" > /home/hadoop/storage/zookeeper/myid  

hadoop@slave-02:~/installation/zookeeper-3.3.4$ echo "2" > /home/hadoop/storage/zookeeper/myid  

hadoop@slave-03:~/installation/zookeeper-3.3.4$ echo "3" > /home/hadoop/storage/zookeeper/myid  

按照上述進行配置即可。

第五步:啟動zookeeper叢集

在zookeeper叢集的每個結點上,執行啟動zookeeper服務的腳本,如下所示:

hadoop@slave-01:~/installation/zookeeper-3.3.4$ bin/zkserver.sh start  

hadoop@slave-02:~/installation/zookeeper-3.3.4$ bin/zkserver.sh start  

hadoop@slave-03:~/installation/zookeeper-3.3.4$ bin/zkserver.sh start  

Zookeeper,也要接觸起來啦
Zookeeper,也要接觸起來啦

繼續閱讀