1. 程式人生 > >Zookeeper-集群與單機實踐

Zookeeper-集群與單機實踐

dir server 分布 標識 telnet命令 blog 集群 配置 img

我用的是linux,CentOS7.3,zookeeper的版本是3.4.6,工具XShell。上傳zookeeper的壓縮包後我們開始操作。

集群模式: 

  1、解壓zookeeper,路徑隨意

    tar -zxvf zookeeper.tar.gz

  2、配置文件

    初次使用zookeeper時,將conf下的zoo_sample.cfg更名為zoo.cfg,方便我們配置。

    技術分享圖片

    技術分享圖片

  3、對zoo.cfg文件進行簡單配置,參數我們會在後面的教程中詳細講解

    vi zoo.cfg 進入文本開始編輯。i開始編輯,esc後wq是保存退出,esc後q!是不保存退出。

    技術分享圖片

  在集群模式下,集群中的每臺機器都要感知整個集群是由哪幾臺機器組成的,配置文件中按照這樣的格式配置,每一行都代表一個機器配置:server.id=host:port:port

  其中,id被稱為Server ID,用來標識該機器在集群中的機器序號。在每臺zookeeper機器上,我們需要在數據目錄(即dataDir參數指定的那個目錄)下創建一個myid文件,該文件只有一行內容,並且是一個數字,即對應每臺機器的Server ID數字,id的範圍是1~255。host為集群中機器的ip地址。

  4、創建myid

    在dataDir配置目錄下創建,mkdir /var/lib/zookeeper、touch myid、vi myid、填寫對應的id

  5、安裝相同步驟,為其他機器配置上zoo.cfg和myid

  6、啟動服務器

    在zookeeper/bin目錄下的zkServer.sh腳本進行服務器啟動。

    技術分享圖片

    zkServer.sh start

  7、驗證服務器

    啟動完成後,使用如下命令來檢查服務器啟動是否正常:

    使用telnet命令stat來進行服務器啟動的驗證,如果出現和下面類似的輸出信息,說明服務器正常啟動了。

    技術分享圖片

    註:輸入telnet,提示 command not found的話,解決方法在這:https://blog.csdn.net/congcong68/article/details/41382753。由衷的感謝提供解決方法的朋友!

單機模式:

  單機模式下只需要對zoo.cfg文件稍微進行修改,如下:

  技術分享圖片

  刪除多余的server配置。然後啟動zookeeper服務,同樣使用telnet驗證服務。

偽集群模式:

  我們在做自己的分布式項目時,沒有多余的服務器。可以采用偽集群模式來構建集群,使用項目的偽集群化。

  只需要對zoo.cfg文件進行修改。如同集群群模式,但略有不同。每一行機器列表配置都是同一個ip地址,後面端口不同。

  技術分享圖片

  偽集群下,是多個zookeeper。但是配置時不同於集群模式。按上述方式啟動,並通過telnet來進行服務驗證。

運行服務:

  我們介紹了zookeeper集群和單機模式的搭建,下面我們介紹zookeeper服務的啟動與停止方法,及一些在啟動階段出現的常見錯誤。

  (周五了還沒下班,肚子好餓)

  ***************************************

  相關命令:

    使用zookeeper自帶的啟動腳本啟動:

    啟動:zkServer.sh start、停止:zkServer.sh stop

    zkCleanup:清理zookeeper歷史數據,包括事務日誌文件和快照數據文件

    zkCli:zookeeper的一個簡易客戶端

    zkEnv:設置zookeeper的環境變量

    zkServer:zookeeper服務器的啟動、停止和重啟腳本。

  後續再更新---

Zookeeper-集群與單機實踐