天天看點

ZooKeeper 叢集搭建1、ZooKeeper 軟體安裝須知2、具體安裝3、學習内容

ZooKeeper 叢集搭建

  • 1、ZooKeeper 軟體安裝須知
  • 2、具體安裝
    • 2.1、下載下傳
    • 2.2、解壓安裝到自己的目錄
    • 2.3、修改配置檔案
    • 2.4、啟動軟體,并驗證安裝是否成功
  • 3、學習内容

1、ZooKeeper 軟體安裝須知

鑒于 ZooKeeper 本身的特點,伺服器叢集的節點數推薦設定為奇數台。我這裡我規劃為三台,分别為 hadoop01,hadoop02,hadoop03

2、具體安裝

2.1、下載下傳

下載下傳位址:http://mirrors.hust.edu.cn/apache/ZooKeeper/

版本号:ZooKeeper-3.4.7.tar.gz

連結:https://pan.baidu.com/s/1Y9GygNu7yKPUFrxmQ9cbBg

提取碼:w7zm

版本号:zookeeper-3.4.10.tar.gz

2.2、解壓安裝到自己的目錄

tar -zxvf ZooKeeper-3.4.7.tar.gz -C /home/hadoop/apps/
           
ZooKeeper 叢集搭建1、ZooKeeper 軟體安裝須知2、具體安裝3、學習内容

ZooKeeper 運作最重要的四個東西。

2.3、修改配置檔案

cd conf/
mv zoo_sample.cfg zoo.cfg
           
ZooKeeper 叢集搭建1、ZooKeeper 軟體安裝須知2、具體安裝3、學習内容

修改配置項:

vi zoo.cfg
           
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/apps/zkdata
clientPort=2181
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
           

儲存退出

補充:假如要配置 observer,那麼請把 zoo.cfg 改成如下配置:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/apps/zkdata
dataLogDir=/root/apps/zklog
clientPort=2181

server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
server.4=hadoop04:2888:3888:observer // 如果有第四台機器,并且想配置 observer
           

配置參數解析:

A、tickTime:基本事件單元,以毫秒為機關。它用來控制心跳和逾時,預設情況下最小的會話逾時時間為兩倍的 tickTime。

B、initLimit:此配置表示,允許 follower (相對于 leader 而言的“用戶端”)連接配接并同步到 leader 的初始化連接配接時間,它以 tickTime 的倍數來表示。當超過設定倍數的 tickTime 時間,則連接配接失敗。

C、syncLimit:此配置表示,leader 與 follower 之間發送消息,請求和應答時間長度。如果 follower 在設定的時間内不能與 leader 進行通信,那麼此 follower 将被丢棄。

D、dataDir:存儲記憶體中資料庫快照的位置。注意:如果需要保留日志資訊,那麼可以考慮配置 dataLogDir 的位置,這個位置就是日志的存儲目錄。通常情況下是分開存儲的。并且應該謹慎地選擇日志存放的位置,使用專用的日志儲存設備能夠大大地提高系統的性能,如果将日志存儲在比較繁忙的儲存設備上,那麼将會在很大程度上影響系統的性能。

E、clientPort:監聽用戶端連接配接的端口,預設是 2181,最好不要修改。

F、最後再增加 ZooKeeper 的伺服器清單資訊,格式為:

server.id=主機名:心跳端口:選舉端口

例子:server.1=hadoop01:2888:3888

其中 id 雖然可以随便寫,但是有兩點要求,第一不能重複,第二範圍是 1-255,并且對應伺服器清單上還得存在對應的 id 檔案,具體看下面操作。

然後分發至其他伺服器:

[hadoop @hadoop01 zkdata]# scp -r ZooKeeper-3.4.7/ [email protected]:/home/hadoop/apps/

[hadoop @hadoop01 zkdata]# scp -r ZooKeeper-3.4.7/ hadoop @hadoop03:/home/hadoop/apps/

**

然後是最重要的步驟,一定不能忘了。

去你的各個 ZooKeeper 伺服器節點,建立目錄 dataDir=/home/hadoop/apps/zkdata,這個目錄就是你在 zoo.cfg 中配置的 dataDir 的目錄,建好之後,在裡面建立一個檔案,檔案名叫 myid,裡面存放的内容就是伺服器的 id,就是 server.1=hadoop01:2888:3888 當中的 id,就是 1,那麼對應的每個伺服器節點都應該做類似的操作。

拿伺服器 hadoop01 舉例:

[hadoop @hadoop01 apps]# mkdir /home/hadoop/apps/zkdata

[hadoop @hadoop01 apps]# cd zkdata

[hadoop @hadoop01 zkdata]# echo 1 > myid

**

當以上所有步驟都完成時,意味着我們 ZooKeeper 的配置檔案相關的修改都做完了。

2.4、啟動軟體,并驗證安裝是否成功

先配置環境變量:

vi /etc/profile
           

增加兩行:

export ZOOKEEPER_HOME=/home/hadoop/apps/ZooKeeper-3.4.7
export PATH=$PATH:$ZOOKEEPER_HOME/bin
           

儲存退出,重新整理環境變量,執行:

source /etc/profile
           

啟動指令:

zkServer.sh start
           

注意:雖然我們在配置檔案中寫明了伺服器的清單資訊,但是,我們還是需要去每一台伺服器去啟動,不是一鍵啟動叢集模式

然後檢查在每台伺服器之間是不是都啟動了有 QuorumPeerMain 程序,并檢查每台伺服器的角色,使用指令:

jps 檢查 QuorumPeerMain 程序

zkServer.sh status 檢視伺服器角色(leader or follower)

zkServer.sh stop 停止 zk server。

3、學習内容

上節學習内容:ZooKeeper 基礎知識

下節學習内容:ZooKeeper 叢集使用(Cli and JavaAPI)

繼續閱讀