zookeeper環境搭建(一)

zookeeper環境搭建

1.下載安裝包

下載安裝包

登錄zookeeper官網:https://zookeeper.apache.org/
可以從官網上下載,流程如下

在這裏插入圖片描述
地址:https://zookeeper.apache.org/releases.html#download
在這裏插入圖片描述
地址:https://www.apache.org/dyn/closer.cgi/zookeeper/
在這裏插入圖片描述
地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/
在這裏插入圖片描述
本人選擇3.4.14版本
地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/
在服務器上通過wget進行下載(路徑是/usr/local/zookeeper)
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
在這裏插入圖片描述
解壓壓縮包: tar -xzvf zookeeper-3.4.14.tar.gz

2.單機搭建

修改配置文件,在conf目錄下執行命令
cp zoo_sample.cfg zoo.cfg
啓動服務,在bin目錄下執行
./zkServer.sh start …/conf/zoo.cfg
查看進程,代表啓動成功(注意要先安裝JDK)
JDK安裝參考:https://blog.csdn.net/liujie379908/article/details/86515849
在這裏插入圖片描述
通過客戶端登錄
./zkCli.sh
連接成功後,顯示如下
在這裏插入圖片描述
到此爲止,單機版的zookeeper搭建成功了,可以愉快的玩耍了

3.集羣環境搭建

單板ip client端口號
10.31.20.171 2181
10.31.20.171 2182
10.31.20.171 2183

本文使用一塊單板來模擬集羣中的部署情況
新建三個目錄zoo1,zoo2,zoo3
在這裏插入圖片描述
在每個目錄中下載安裝包,解壓

3.1配置zoo1服務

在zoo1中conf目錄下執行命令
cp zoo_sample.cfg zoo1.cfg
配置zoo1.cfg文件

    dataDir=/tmp/zookeeper-1
    clientPort=2181
    server.1=10.31.20.171:2888:3888
    server.2=10.31.20.171:2889:3889
    server.3=10.31.20.171:2890:3890

配置myid,在dataDir目錄下創建myid文件,配置sid爲1(與server.1對應)
在這裏插入圖片描述在這裏插入圖片描述

3.2配置zoo2服務

在zoo2中conf目錄下執行命令
cp zoo_sample.cfg zoo2.cfg
配置zoo2.cfg文件

    dataDir=/tmp/zookeeper-2
    clientPort=2182
    server.1=10.31.20.171:2888:3888
    server.2=10.31.20.171:2889:3889
    server.3=10.31.20.171:2890:3890

配置myid,在dataDir目錄下創建myid文件,配置sid爲2

3.3配置zoo3服務

在zoo3中conf目錄下執行命令
cp zoo_sample.cfg zoo3.cfg
配置zoo3.cfg文件
配置zoo2.cfg文件

    dataDir=/tmp/zookeeper-3
    clientPort=2183
    server.1=10.31.20.171:2888:3888
    server.2=10.31.20.171:2889:3889
    server.3=10.31.20.171:2890:3890

配置myid,在dataDir目錄下創建myid文件,配置sid爲3

4.Cli客戶端測試

啓動服務

 ./zkServer.sh start ../conf/zoo1.cfg
 ./zkServer.sh start ../conf/zoo2.cfg
 ./zkServer.sh start ../conf/zoo3.cfg

查詢集羣中三個服務狀態
./zkServer.sh status …/conf/zoo1.cfg
zoo1服務爲follower,zoo2爲leader,zoo3爲follower
在這裏插入圖片描述
通過zkCli客戶端進行操作zk服務
./zkCli.sh -server 10.31.20.171:2182
在leader上創建或者刪除節點,會自動同步到從節點上
在這裏插入圖片描述

在從節點zoo1和zoo3上查看,/test-zk已經同步到從節點了
在這裏插入圖片描述

5.Java客戶端測試

測試代碼如下

public class App implements Watcher
{
    private static final CountDownLatch countDownLatch = new CountDownLatch(1);
    public static void main( String[] args )
    {

        try {
            ZooKeeper zk = new ZooKeeper("10.31.20.171:2181,10.31.20.171:2182,10.31.20.171:2183",5000,new App());
            System.out.println("ZooKeeper connect status:" + zk.getState());
            countDownLatch.await();
            String value1 = zk.create("/test-zk","0".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);
            String value2 = zk.create("/test-zk","0".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);
            System.out.println(value1);
            System.out.println(value2);
            System.out.println("main success");
            System.in.read();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (KeeperException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void process(WatchedEvent watchedEvent) {
        if (Event.KeeperState.SyncConnected == watchedEvent.getState()){
            System.out.println("ZooKeeper connect status:" + watchedEvent.getState());
            countDownLatch.countDown();
        }
        System.out.println("Receive watch event :"+ watchedEvent);

    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章