在centos系統(tǒng)上部署zookeeper集群,步驟如下:
準備階段:
-
服務器準備: 至少需要三臺服務器,分別作為Leader (主節(jié)點) 和兩個Follower (從節(jié)點)。確保服務器之間網絡互通。
-
Java環(huán)境:
-
zookeeper安裝與解壓:
ZooKeeper配置:
-
環(huán)境變量:
- 編輯 /etc/profile 文件,添加以下環(huán)境變量 (根據(jù)實際路徑調整):
export JAVA_HOME=/usr/java/jdk1.8.0_xxx # 替換xxx為你的jdk版本號 export JRE_HOME=$JAVA_HOME/jre export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export ZOOKEEPER_HOME=/usr/local/zookeeper-x.x.x # 替換x.x.x為你的ZooKeeper版本號 export PATH=$PATH:$ZOOKEEPER_HOME/bin
- 使修改生效: source /etc/profile
- 編輯 /etc/profile 文件,添加以下環(huán)境變量 (根據(jù)實際路徑調整):
-
ZooKeeper配置文件:
- 進入ZooKeeper配置文件目錄: cd $ZOOKEEPER_HOME/conf
- 復制并重命名配置文件: cp zoo_sample.cfg zoo.cfg
- 編輯 zoo.cfg 文件,配置以下參數(shù) (替換為你的服務器IP和ID):
tickTime=2000 dataDir=/usr/local/zookeeper-x.x.x/data # 替換x.x.x為你的ZooKeeper版本號 clientPort=2181 initLimit=5 syncLimit=2 server.1=master_ip:2888:3888 server.2=slave1_ip:2888:3888 server.3=slave2_ip:2888:3888
其中 master_ip, slave1_ip, slave2_ip 分別替換為你的主節(jié)點和從節(jié)點的IP地址。 server.1, server.2, server.3 分別對應服務器ID 1, 2, 3。
-
數(shù)據(jù)目錄:
- 在每臺服務器上創(chuàng)建數(shù)據(jù)目錄: sudo mkdir -p $ZOOKEEPER_HOME/data
- 確保ZooKeeper用戶對該目錄具有讀寫權限。
-
myid文件:
- 在每臺服務器的 dataDir 目錄下創(chuàng)建 myid 文件,文件內容為該服務器的ID (1, 2, 3)。
啟動ZooKeeper:
-
啟動服務: 在每臺服務器上執(zhí)行: $ZOOKEEPER_HOME/bin/zkServer.sh start
-
驗證狀態(tài): 使用 $ZOOKEEPER_HOME/bin/zkServer.sh status 檢查ZooKeeper服務狀態(tài)。
- 開放端口: 開放ZooKeeper客戶端端口 (默認2181) 和服務器間通信端口 (2888, 3888)。 方法取決于你使用的防火墻 (firewalld 或iptables)。 例如,使用firewalld:
- sudo firewall-cmd –permanent –add-port=2181/tcp
- sudo firewall-cmd –permanent –add-port=2888/tcp
- sudo firewall-cmd –permanent –add-port=3888/tcp
- sudo firewall-cmd –reload
集群驗證:
-
安裝客戶端: 在任意一臺服務器上安裝ZooKeeper客戶端: sudo yum install zookeeper-client
-
連接并測試: 使用客戶端連接集群: zkCli -server master_ip:2181 (替換 master_ip 為任意一個節(jié)點的IP),然后執(zhí)行 ls / 命令查看根節(jié)點內容。
記住替換文中所有占位符 (例如 x.x.x, master_ip, slave1_ip, slave2_ip) 為你的實際值。 確保所有服務器上的配置一致。