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.集群环境搭建

单板ipclient端口号
10.31.20.1712181
10.31.20.1712182
10.31.20.1712183

本文使用一块单板来模拟集群中的部署情况
新建三个目录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);

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值