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
開啟zoo.cfg,預設如下所示,後面我自己添加了詳解。mv zookeeper-3.3.6 zookeeper cd zookeeper/conf cp zoo_sample.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