Zookeeper-集群與單機實踐
我用的是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-集群與單機實踐