一、安裝 JDK
1、下載 JDK 安裝包。在 Oracle 官網上下載需要的 JDK 安裝包,安裝包可根據操作系統的不同而有所區別,下載後按照默認選項完成安裝。
2、配置環境變量。安裝完成 JDK 後需要配置相應的環境變量,將 JDK 的 bin 目錄加入 PATH 環境變量中。
export JAVA_HOME=/usr/java/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH
二、安裝 Zookeeper
1、下載 Zookeeper 安裝包。在 Apache 官網上下載需要的 Zookeeper 安裝包,根據需要選擇合適的版本。
2、解壓安裝包。將下載的安裝包解壓到指定目錄下,例如:/usr/local/zookeeper。
tar -zxvf zookeeper-3.5.6.tar.gz -C /usr/local/zookeeper
3、配置環境變量。同樣需要配置環境變量,將 Zookeeper 的 bin 目錄加入 PATH 環境變量中。
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$ZOOKEEPER_HOME/bin:$PATH
三、配置 Zookeeper
1、複製配置文件。Zookeeper 需要有一個配置文件,可以在安裝包的 conf 目錄下找到 zoo_sample.cfg 文件,複製一份文件並改名為 zoo.cfg。
2、修改配置文件。可按需修改配置文件,例如修改 dataDir 選項指定數據存儲目錄。
cp $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg
vim $ZOOKEEPER_HOME/conf/zoo.cfg
四、啟動 Zookeeper
1、啟動 Zookeeper。可以通過命令啟動 Zookeeper。
zkServer.sh start
2、查看狀態。可以通過命令查看 Zookeeper 的狀態。
zkServer.sh status
3、停止 Zookeeper。可以通過命令停止 Zookeeper。
zkServer.sh stop
五、Zookeeper 集群配置
1、複製配置文件。在安裝多個 Zookeeper 服務器並組成集群的場景下,需要在每台服務器上都進行上述 Zookeeper 的安裝和配置。在配置時只需按需修改配置文件。
2、修改配置文件。在多個服務器組成集群時,需要在配置文件中指定集群的信息。
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/var/zookeeper/data
clientPort=2181
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
其中 server.x 表示 Zookeeper 服務器的編號,x 為數字,後面兩個數字分別表示該 Zookeeper 服務器與其他服務器通信時監聽的端口號。
3、啟動 Zookeeper。啟動多台服務器上的 Zookeeper,確保各個服務器中的配置文件都是一致的。
六、Zookeeper 客戶端操作
1、命令行操作。可以通過命令行進行 Zookeeper 的各種操作。
zkCli.sh
2、Java API 操作。使用 Java 編寫程序來操作 Zookeeper,使用 Zookeeper 的客戶端庫。
import org.apache.zookeeper.*;
public class ZookeeperTest {
public static void main(String[] args) throws Exception{
String connection = "zoo1:2181,zoo2:2181,zoo3:2181";
int sessionTimeout = 3000;
ZooKeeper zooKeeper = new ZooKeeper(connection, sessionTimeout, null);
String path = "/test";
byte[] data = "test".getBytes();
// 創建節點
zooKeeper.create(path, data, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
// 獲取節點數據
byte[] result = zooKeeper.getData(path, null, null);
String dataStr = new String(result);
System.out.println("node data:" + dataStr);
// 設置節點數據
byte[] newData = "newTest".getBytes();
zooKeeper.setData(path, newData, -1);
// 刪除節點
zooKeeper.delete(path, -1);
}
}
原創文章,作者:PCDDX,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/334914.html