1. 程式人生 > >zookeeper安裝和部署 以及常見問題分析

zookeeper安裝和部署 以及常見問題分析

近日在搭建高可用的分散式hadoop平臺,在高可用方面,需要用zookeeper作為分散式協調工具。在搭建zookeeper的過程中雖然簡單,但是也是遇見了很多坑這裡記錄一下。

       1.zookeeper下載

    直接從官網上下載最新的安裝包,然後解壓即可,這裡寫一下官網下載地址http://apache.fayea.com/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz

        2.zookeeper安裝

        使用者自己安裝的程式一般都安裝在/usr/local下面,因此,此處也將zookeeper安裝到該路徑下面,首先建立資料夾以及修改資料夾屬主。

sudo mkdir /usr/local/zookeeper
sudo chown 使用者名稱.使用者組 /usr/local/zookeeper
此時該資料夾就屬於當前使用者使用了。然後將新下載的安裝包解壓到該目錄下面。
tar xzvf zookeeper-3.3.6.tar.gz
此時就已經將zookeeper安裝到了本地。下面是修改配置檔案。

3.zookeeper配置

目錄切換到conf資料夾下,然後將zoo_sample.cfg複製一份出來,命名為zoo.cfg

mv zookeeper-3.3.6 zookeeper
cd zookeeper/conf
cp zoo_sample.cfg zoo.cfg
開啟zoo.cfg,預設如下所示,後面我自己添加了詳解。
# The number of milliseconds of each tick
tickTime=2000  //心跳時間單位
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10 //初始化時與leader連線的follower失聯後忍受的最大失聯時間數,是10個心跳單位,如果超過了還沒連上,則認為有follower失聯了。
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5//follower和leader之間收發訊息的最長時間間隔,超過該時間,則認為訊息丟失。
# the directory where the snapshot is stored.
dataDir=/tmp/zookeeper//資料路徑 此處要進行修改,因為該路徑下要配置myid檔案,使用者可以修改成自己想要的檔案路徑,比如/usr/local/zookeeper/dataDir/,然後在該資料夾下新增檔案myid,並寫上數字編號。
# the port at which the clients will connect
clientPort=2181//客戶端的預設埠號。
後面再追加如下幾句
server.1=hadoop01-namenode:2888:3888
server.2=hadoop02-datanode:2888:3888
server.3=hadoop03-datanode:2888:3888
然後分別在其他機器上都複用這一份配置檔案。同時修改dataDir中的myid檔案。檔案裡的內容對應server.1 server.2 server.3後面的數字。

比如在hadoop01-namenode這個機器上 /usr/local/zookeeper/dataDir/myid 檔案中的內容是1

比如在hadoop02-datanode這個機器上 /usr/local/zookeeper/dataDir/myid 檔案中的內容是2

比如在hadoop03-datanode這個機器上 /usr/local/zookeeper/dataDir/myid 檔案中的內容是3

配置好這些 然後再在環境變數中新增 sudo  vim /etc/profile

export ZOOKEEPER_HOME=/usr/local/hadoop/app/zookeeper
export PATH=$ZOOKEEPER_HOME/bin:$PATH
然後 source /etc/profile

此時就可以直接使用zookeeper目錄下的bin檔案的啟動命令了。

4.zookeeper啟動。

分別在三個節點上執行下面命令。

zkServer.sh start
zkServer.sh status
如果執行成功,會出現
JMX enabled by default
Using config: /usr/local/hadoop/app/zookeeper/bin/../conf/zoo.cfg
Mode: leader
或者是leader在其他節點上變為follower都是正確的。說明此時zookeeper已經完全正確使用。

5.安裝過程中常見問題分析。

如果出現瞭如下資訊。

JMX enabled by default
Using config: /usr/local/hadoop/app/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
說明zookeeper肯定沒有安裝成功。日誌檔案都在zookeeper目錄下的zookeeper.out裡面會有顯示。可以進去檢視。

a.myid檔案配置路徑錯誤,myid所在地方一定是在conf/zoo.cfg裡面配置的dataDir路徑下,不能放錯地方

b.防火牆沒有關閉,如果在zookeeper.out中出現大量拒絕連線等,沒有到目標機器的路由等欄位,說明是防火牆的問題,在ubuntu上和centos上關閉防火牆的方式不同,比如centos可以檢視防火牆狀態,

sudo service iptables status
如果結果不是off等,說明防火牆沒關,一定要關掉防火牆後,再重啟zookeeper。

針對高可用的hadoop安裝過程,可以參考我寫的下面這篇文章。

http://blog.csdn.net/u013676711/article/details/53176485