天天看點

zookeeper安裝及配置

上篇博文介紹了hadoop的安裝,這篇接着是zookeeper(3.4.6)的安裝。

4.1、修改zookeeper配置檔案zoo.cfg

在centos系統下解壓zookeeper安裝包zookeeper-3.4.6.tar.gz ,進入到conf目錄,将zoo_sample.cfg拷貝一份命名為zoo.cfg(Zookeeper 在啟動時會找這個檔案作為預設配置檔案):

[[email protected] conf] cp zoo_sample.cfg zoo.cfg 

對zoo.cfg配置如下:

tickTime=2000                             (基本事件單元,以毫秒為機關。它用來訓示心跳,最小的 session 過期時間為兩倍的 tickTime.)

dataDir=/usr/new/zookeeper    (dataDir :存儲記憶體中資料庫快照的位置,如果不設定參數,更新事務日志将被存儲到預設位置。)

dataLogDir=/usr/new/zookeeper/logs #日志存放目錄,手動存在

server.0=172.31.62.52:2888:3888

server.1=172.31.62.53:2888:3888

server.2=172.31.62.54:2888:3888

clientPort=2181                (clientPort :監聽用戶端連接配接的端口)

其中,2888端口号是服務之間通信的端口,而3888是zookeeper與其他應用程式通信的端口.zookeeper是在hosts中映射了本機的IP.server.A=B:C:D:其中A是一個數字(設定需要從0開始,因為機器重新開機預設從0開始),表示這個是第幾号伺服器;B是這個伺服器的ip位址;C表示的是這個伺服器與叢集中的Leader伺服器交換資訊的端口;D表示的是萬一叢集中的Leader伺服器挂了,需要一個端口來重新進行選舉,選出一個新的Leader,而這個端口就是用來執行選舉時伺服器互相通信的端口。

4.2、建立目錄、建立并編輯myid檔案

(本次配置myid檔案放在/usr/zookeeper下)

vim/usr/zookeeper/data/myid

注意myid檔案中的内容為:Slave1中為0,Slave2中為1,Slave3為2,分别與zoo.cfg中對應起來。

注:在建立過程中曾使用“echo“1”>myid.txt”的方式建立檔案,運作zookeeper時會一直顯示”myid file is missing”,應該使用“touch myid”指令建立。這麼低級的錯誤......

4.3、同步安裝包

将解壓修改後的zookeeper檔案夾分别拷貝到Master、Slave1、Slave2的相同zookeeper安裝路徑下。注意:1.zookeeper-3.4.6的權限問題(chown -R hadoop:hadoop zookeeper),有可能更改後仍報權限問題,進到檔案夾中,可能會有新生成的log權限仍為root,改之。2.myid檔案的内容不是一樣的,各伺服器中分别對應zoo.cfg中的設定。

4.4、啟動zookeeper

Zookeeper的啟動與hadoop不一樣,需要每個節點都執行,分别進入3個節點的zookeeper目錄,啟動zookeeper:

bin/zkServer.sh start

若配置了”/etc/profile”,将zookeeper路徑添加進去,則可直接在目錄下執行”zkServer.sh start”在另兩台伺服器中執行相同操作。

4.5、檢查zookeeper是否配置成功

待3台伺服器均啟動後,如果過程正确的話zookeeper應該已經自動選好leader,進入每台伺服器的zookeeper目錄,執行以下操作檢視zookeeper啟動狀态:

bin/zkServer.sh status

如果出現以下代碼表示安裝成功了。

zookeeper安裝及配置

4.6、啟動用戶端腳本:zookeeper-3.4.3/bin/zkCli.sh -server zookeeper:2181

4.7、停止zookeeper程序:zookeeper-3.4.3/bin/zkServer.sh stop

注:

1.檢視2181端口占用情況:lsof -i:2181.

2.強行停止zookeeper:

1)jps 檢視QuorumPeerMain對應的程序id.

2)kill -9 ID.

3)[[email protected] ~] cd /tmp ,删除hsperfdata_hadoop中對應的檔案。

清淨了。

3.不知為何偶爾會出現log不在指定目錄的情況,在清zookeeper殘留記錄時要删除相應的/version-2檔案夾和日志,日志“zookeeper.out”查找指令:

[[email protected] ~] find  /  -name  "zookeeper.out"