Windows和Linux环境中安装Zookeeper具体操作

这篇具有很好参考价值的文章主要介绍了Windows和Linux环境中安装Zookeeper具体操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.Windows环境中安装Zookeeper

1.1 下载Zookeeper安装包

ZooKeeper官网下载地址
建议下载稳定版本的
Windows和Linux环境中安装Zookeeper具体操作,微服务,zookeeper
下载后进行解压后得到如下文件:Windows和Linux环境中安装Zookeeper具体操作,微服务,zookeeper

1.2 修改本地配置文件

进入解压后的目录,将zoo_example.cfg复制一份并重命名为zoo.cfg,如图所示:

打开zoo.cfg文件,找到dataDir,修改数据存放路径,此路径为本地自定义路径。

新增dataLogDir,添加zookeeper日志保存地址。Windows和Linux环境中安装Zookeeper具体操作,微服务,zookeeper
在此配置中也可进行端口号修改,默认使用的是2181端口,但是一般使用的就是默认的配置文件,不需要进行更改。

1.3 环境变量配置

新增系统环境变量:Windows和Linux环境中安装Zookeeper具体操作,微服务,zookeeper

ZOOKEEPER_HOME=D:\software\apache-zookeeper-3.8.2

然后在系统变量Path中新增如下命令参数:

%ZOOKEEPER_HOME%\bin

Windows和Linux环境中安装Zookeeper具体操作,微服务,zookeeper

1.4 运行ZooKeeper

由于我们已经设置了环境变量,我们只需要在cmd输入zkserver就能成功运行ZooKeeper,具体如下图所示:
Windows和Linux环境中安装Zookeeper具体操作,微服务,zookeeper
Windows和Linux环境中安装Zookeeper具体操作,微服务,zookeeper
Windows和Linux环境中安装Zookeeper具体操作,微服务,zookeeper

2.Linux/Max环境中安装Zookeeper

2.1 ZooKeeper介绍

​ ZooKeeper是一个分布式的协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:

  • 配置维护
  • 域名服务
  • 分布式同步
  • 组服务等。
    ​ 在大型企业级项目开发中,服务的数量十分庞大。此时,如果想要添加一个服务的话,就需要对文件进行重新覆盖,对整个容器进行重启。这样做的一个弊端就是涉及的组件相当大,维护什么困难。
    ​ 那么需要一个能够动态注册服务和获取服务信息的组件来统一管理服务,这就是我们常说的服务配置中心。而zookeeper不仅能够对consumer和provider进行管理,并且还内置了负载均衡、主动通知等功能,能够帮助我们很好地解决分布式相关的问题。

2.2 ZooKeeper安装

现在linux主要采用Docker进行环境安装,方便又快捷,Docker的安装和使用请参考作者的这篇博客。
Docker最新超详细版教程通俗易懂(基础版)

  1. 拉取镜像
    docker pull zookeeper
    

Windows和Linux环境中安装Zookeeper具体操作,微服务,zookeeper
2. 创建目录来进行ZooKeeper目录文件的挂载

mkdir zookeeper
ls

Windows和Linux环境中安装Zookeeper具体操作,微服务,zookeeper
3. docker启动容器
设置端口映射、目录挂载、开机自启等命令设置

docker run -d -e TZ="Asia/Shanghai" -p 2181:2181 -v /mydata/zookeeper:/data --name zookeeper --restart always zookeeper

Windows和Linux环境中安装Zookeeper具体操作,微服务,zookeeper
参数说明:

  • -e TZ=“Asia/Shanghai” :指定时区为上海
  • -d :后台运行
  • -p 2181:2181 : 端口映射,本地2181端口映射到容器内部的2181端口
  • -name : 设置容器的名称
  • -v :指定挂载的目录
  • -restart always :始终重新启动zookeeper
  1. 查看进程是否正常启动
    docker exec -it zookeeper /bin/bash
    

Windows和Linux环境中安装Zookeeper具体操作,微服务,zookeeper
出现如上页面即表示zookeeper启动成功文章来源地址https://www.toymoban.com/news/detail-687384.html

2.3 本地连接linux zookeeper

  1. 新建SpringBoot项目
  2. 导入pom依赖:
    <!--zookeeper连接包-->
    <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>3.4.6</version>
    </dependency>
    
  3. 创建测试类:
    package org.example;
    
    import org.apache.zookeeper.*;
    
    import java.util.List;
    import java.util.concurrent.CountDownLatch;
    import org.apache.zookeeper.CreateMode;
    import org.apache.zookeeper.KeeperException;
    import org.apache.zookeeper.WatchedEvent;
    import org.apache.zookeeper.Watcher;
    import org.apache.zookeeper.Watcher.Event.KeeperState;
    import org.apache.zookeeper.ZooDefs.Ids;
    import org.apache.zookeeper.ZooKeeper;
    import org.apache.zookeeper.data.Stat;
    
    public class BaseZooKeeper implements Watcher {
    
        private static ZooKeeper zooKeeper;
    
        // 超时时间
        private static final int SESSION_TIME_OUT = 1000;
    
        private CountDownLatch countDownLatch = new CountDownLatch(1);
    
        @Override
        public void process(WatchedEvent watchedEvent) {
            if (watchedEvent.getState() == Event.KeeperState.SyncConnected) {
                System.out.println("Watch received event");
                countDownLatch.countDown();
            }
        }
        /**连接zookeeper
         * @param host
         * @throws Exception
         */
        public void connectZookeeper(String host) throws Exception{
            zooKeeper = new ZooKeeper(host, SESSION_TIME_OUT, this);
            countDownLatch.await();
            System.out.println("zookeeper connection success");
        }
    
        /**
         * 创建节点
         * @param path
         * @param data
         * @throws Exception
         */
        public String createNode(String path,String data) throws Exception{
            return this.zooKeeper.create(path, data.getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        }
    
        /**
         * 获取路径下所有子节点
         * @param path
         * @return
         * @throws KeeperException
         * @throws InterruptedException
         */
        public List<String> getChildren(String path) throws KeeperException, InterruptedException{
            List<String> children = zooKeeper.getChildren(path, false);
            return children;
        }
    
        /**
         * 获取节点上面的数据
         * @param path  路径
         * @return
         * @throws KeeperException
         * @throws InterruptedException
         */
        public String getData(String path) throws KeeperException, InterruptedException{
            byte[] data = zooKeeper.getData(path, false, null);
            if (data == null) {
                return "";
            }
            return new String(data);
        }
    
        /**
         * 设置节点信息
         * @param path  路径
         * @param data  数据
         * @return
         * @throws KeeperException
         * @throws InterruptedException
         */
        public Stat setData(String path,String data) throws KeeperException, InterruptedException{
            Stat stat = zooKeeper.setData(path, data.getBytes(), -1);
            return stat;
        }
    
        /**
         * 删除节点
         * @param path
         * @throws InterruptedException
         * @throws KeeperException
         */
        public void deleteNode(String path) throws InterruptedException, KeeperException{
            zooKeeper.delete(path, -1);
        }
    
        /**
         * 获取创建时间
         * @param path
         * @return
         * @throws KeeperException
         * @throws InterruptedException
         */
        public String getCTime(String path) throws KeeperException, InterruptedException{
            Stat stat = zooKeeper.exists(path, false);
            return String.valueOf(stat.getCtime());
        }
    
        /**
         * 获取某个路径下孩子的数量
         * @param path
         * @return
         * @throws KeeperException
         * @throws InterruptedException
         */
        public Integer getChildrenNum(String path) throws KeeperException, InterruptedException{
            int childenNum = zooKeeper.getChildren(path, false).size();
            return childenNum;
        }
        /**
         * 关闭连接
         * @throws InterruptedException
         */
        public void closeConnection() throws InterruptedException{
            if (zooKeeper != null) {
                zooKeeper.close();
            }
        }
        public static void main(String[] args) throws Exception {
            BaseZooKeeper zookeeper = new BaseZooKeeper();
            zookeeper.connectZookeeper("139.196.74.203:2181");  //改端口
            List<String> children = zookeeper.getChildren("/");
            System.out.println(children);
        }
    }
    
  4. 测试结果:
    Windows和Linux环境中安装Zookeeper具体操作,微服务,zookeeper
    ​ 出现如上页面即表示连接成功
    ​ 项目仓库代码:https://github.com/liuhuanhuan963019/ZooKeeper.git

到了这里,关于Windows和Linux环境中安装Zookeeper具体操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux环境下:Zookeeper-3.5.7安装部署

    官方下载地址https://zookeeper.apache.org/ 1)安装前准备 (1)安装Jdk1.8.0 (2)拷贝Zookeeper安装包到Linux系统下 (3)解压到指定目录 2)配置修改 (1)将/opt/module/zookeeper-3.5.7/conf这个路径下的zoo_sample.cfg修改为zoo.cfg; (2)打开zoo.cfg文件,修改dataDir路径: 修改如下内容: dataDir

    2023年04月20日
    浏览(36)
  • windows/linux 安装zookeeper + Kafka (含自启动)运行教学

    首先我们来花两分钟了解一下: Zookeeper 和 Kafka 都是 Apache 软件基金会中的开源软件。 Zookeeper 是一个分布式协调服务,它提供了一个基于树形结构的命名空间来协调分布式系统的各个部分。Zookeeper 能够跟踪各个分布式系统组件的状态,并在这些组件之间协调消息传递,从而

    2024年02月08日
    浏览(36)
  • 在Windows上搭建Kafka环境的步骤,包括安装Java、下载Kafka、配置Zookeeper和Kafka、启动Zookeeper和Kafka、创建主题和生产者/消费者等

    1. 安装Java Kafka需要Java环境支持。可以从Oracle官网下载JDK,或者使用OpenJDK。 2. 下载Kafka 可以从Kafka官网下载Kafka二进制压缩包。解压后可以看到bin、config、libs等目录。 3. 配置Zookeeper Kafka依赖Zookeeper实现分布式协作。可以使用Kafka自带的Zookeeper,也可以独立安装Zookeeper。 如果使

    2024年02月11日
    浏览(45)
  • ZooKeeper 分布式协调服务: 概述及原理, 安装配置, 基本操作

    作者:禅与计算机程序设计艺术 Apache Zookeeper 是 Apache Hadoop 的子项目之一,是一个开源的分布式协调服务。它负责存储和维护关于网络中各个节点的数据。Zookeeper 提供了以下功能:配置维护、域名服务、同步和共享、软/硬件负载均衡、集群管理、Master 选举等。它的架构使得

    2024年02月08日
    浏览(41)
  • 在linux查询注册进zookeeper的服务信息

    1、进入zookeeper bin目录打开命令提示符 2、启动zookeeper sudo ./zkServer.sh start 输入密码启动成功 3、输入./zkServer.sh 再输入 ./zkCli.sh连接 4、输入ls /services查看注册进zookeeper中的服务名称 5、一步步查看,可查询出注册进zookeeper服务的信息

    2024年02月17日
    浏览(31)
  • 分布式服务框架_Zookeeper--管理分布式环境中的数据

    安装和配置详解 本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网   http://hadoop.apache.org/zookeeper/ 来获取, Zookeeper 的安装非常简单,下面将从单机模式和集群模式两个方面介绍 Zookeeper 的安装和配置。 单机模式

    2024年02月12日
    浏览(42)
  • 【Linux系统基础】(5)在Linux上集群化环境前置准备及部署Zookeeper、Kafka软件详细教程

    在前面,我们所学习安装的软件,都是以单机模式运行的。 后续,我们将要学习大数据相关的软件部署,所以后续我们所安装的软件服务,大多数都是以集群化(多台服务器共同工作)模式运行的。 所以,在当前小节,我们需要完成集群化环境的前置准备,包括创建多台虚

    2024年02月03日
    浏览(44)
  • Linux CentOS下大数据环境搭建(zookeeper+hadoop+hbase+spark+scala)

    本篇文章是结合我个人学习经历所写,如果遇到什么问题或者我有什么错误,欢迎讨论。 百度网盘链接:https://pan.baidu.com/s/1DCkQQVYqYHYtPws9hWGpgw?pwd=zh1y 提取码:zh1y 软件在连接中VMwareWorkstation_V16.2.1_XiTongZhiJia的文件夹下。 双击运行安装包,这里下一步即可。 这里勾选我接受许可

    2024年04月15日
    浏览(69)
  • 【zookeeper】zookeeper的shell操作

    本章节将分享一些zookeeper客服端的一些命令,实验操作有助于理解zookeeper的数据结构。 在前一章的基础上,在启动Zookeeper服务之后,输入以下命令,连接到Zookeeper服务。连接成功之后,系统会输出Zookeeper的相关环境及配置信息,并在屏幕输出“welcome to Zookeeper!”等信息,倒

    2024年02月09日
    浏览(57)
  • 【Zookeeper】使用Curator操作Zookeeper

    Curator 是 Apache ZooKeeper 的Java客户端库。 Zookeeper现有常见的Java API如:原生JavaAPI、Curator、ZkClient等。 创建连接 创建节点 不指定数据 指定数据 设置节点类型 节点可以分为四大类: PERSISTENT 持久化节点 EPHEMERAL 临时节点,只在当前会话有效 PERSISTENT_SEQUENTIAL 持久化顺序节点 EPH

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包