Ubuntu 24.04 上安装和配置 Zookeeper 3.6.2

在 Ubuntu 24.04 上安装和配置 Zookeeper 3.6.2 的步骤如下:


步骤 1: 安装必要的软件依赖

Zookeeper 依赖 Java 运行环境。首先确保系统安装了 Java(推荐使用 OpenJDK)。

安装 OpenJDK
  1. 更新软件包列表:

    bash 复制代码
    sudo apt update
  2. 安装 OpenJDK(建议使用 Java 11 或更高版本):

    bash 复制代码
    sudo apt install openjdk-11-jdk -y
  3. 验证 Java 安装:

    bash 复制代码
    java -version

    您应该看到类似以下输出:

    复制代码
    openjdk version "11.0.x"

步骤 2: 下载和解压 Zookeeper 3.6.2

  1. 前往 Apache Zookeeper 的 官方下载页面 或直接使用 wget 下载:

    bash 复制代码
    # wget https://downloads.apache.org/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
    sudo wget https://archive.apache.org/dist/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
  2. 解压下载的文件:

    bash 复制代码
    tar -xzf apache-zookeeper-3.6.2-bin.tar.gz
  3. 将解压后的文件移动到 /opt 或其他合适的目录(可选):

    bash 复制代码
    sudo mv apache-zookeeper-3.6.2-bin /opt/zookeeper-3.6.2
  4. 切换到 Zookeeper 安装目录:

    bash 复制代码
    cd /opt/zookeeper-3.6.2

步骤 3: 配置 Zookeeper

Zookeeper 的默认配置文件位于 conf/zoo_sample.cfg。需要将其复制为 zoo.cfg 并进行必要的修改。

  1. 复制配置文件:

    bash 复制代码
    cp conf/zoo_sample.cfg conf/zoo.cfg
  2. 编辑 zoo.cfg

    bash 复制代码
    nano conf/zoo.cfg

    在配置文件中可以修改以下内容:

    • dataDir :指定数据目录(默认 /tmp/zookeeper)。建议更改为稳定的目录,例如:

      ini 复制代码
      dataDir=/opt/zookeeper-3.6.2/data
    • clientPort :Zookeeper 客户端的连接端口(默认是 2181)。如果需要,可以修改:

      ini 复制代码
      clientPort=2181
    • maxClientCnxns:允许的最大客户端连接数,默认是 60,根据需求可以调整。

  3. 创建数据目录(如果更改了 dataDir):

    bash 复制代码
    mkdir -p /opt/zookeeper-3.6.2/data
  4. 在数据目录下创建一个 myid 文件(仅用于集群模式,单机模式可跳过):

    bash 复制代码
    echo "1" > /opt/zookeeper-3.6.2/data/myid

步骤 4: 启动 Zookeeper 服务

  1. 切换到 Zookeeper 的主目录:

    bash 复制代码
    cd /opt/zookeeper-3.6.2
  2. 使用以下命令启动 Zookeeper:

    bash 复制代码
    bin/zkServer.sh start
  3. 检查 Zookeeper 的状态:

    bash 复制代码
    bin/zkServer.sh status

    您应该看到类似以下的输出,表明 Zookeeper 正常运行:

    复制代码
    Mode: standalone

步骤 5: 测试 Zookeeper

  1. 使用 Zookeeper 提供的 CLI 工具连接到服务器:

    bash 复制代码
    bin/zkCli.sh -server 127.0.0.1:2181
  2. 在 CLI 中测试基本命令。例如:

    bash 复制代码
    create /my_test_node "hello_zookeeper"
    get /my_test_node
    delete /my_test_node
  3. 退出 CLI:

    bash 复制代码
    quit

步骤 6: 配置为系统服务(可选)

为了便于管理,可以将 Zookeeper 配置为系统服务。

  1. 创建一个服务文件:

    bash 复制代码
    sudo nano /etc/systemd/system/zookeeper.service
  2. 在文件中添加以下内容:

    ini 复制代码

Unit

Description=Apache Zookeeper

After=network.target

Service

Type=forking

ExecStart=/opt/zookeeper-3.6.2/bin/zkServer.sh start

ExecStop=/opt/zookeeper-3.6.2/bin/zkServer.sh stop

ExecReload=/opt/zookeeper-3.6.2/bin/zkServer.sh restart

User=root

Restart=on-failure

Install

WantedBy=multi-user.target

复制代码
3. 重新加载 systemd 并启用服务:
```bash
sudo systemctl daemon-reload
sudo systemctl enable zookeeper
  1. 启动 Zookeeper 服务:

    bash 复制代码
    sudo systemctl start zookeeper
  2. 检查服务状态:

    bash 复制代码
    sudo systemctl status zookeeper

总结

  • 您已成功安装 Zookeeper 3.6.2,并可以通过 bin/zkServer.sh 启动或停止服务。
  • Zookeeper 的默认端口是 2181,可以通过配置文件 zoo.cfg 自定义。
  • 您可以配置为系统服务以便更方便地管理。

如果需要进一步配置(例如集群模式),请根据官方文档或具体需求添加服务器列表等配置项。

  1. 直接修改启动脚本(可选)
    如果不使用 java.env 文件,也可以直接在启动脚本中设置内存限制。

编辑 bin/zkServer.sh 脚本:

nano $ZOOKEEPER_HOME/bin/zkServer.sh

在脚本顶部添加:

JVMFLAGS="-Xms512m -Xmx512m"

export JVMFLAGS

  1. 验证设置

启动 ZooKeeper:

$ZOOKEEPER_HOME/bin/zkServer.sh start

查看 ZooKeeper 的 JVM 参数,确保内存设置生效:

jps

jstat -gc <ZooKeeper_PID>

或者通过 ps 命令检查启动参数:

ps aux | grep zookeeper

你应该可以看到 -Xms512m 和 -Xmx512m 的参数。

  1. 重启 ZooKeeper
    完成设置后,重启 ZooKeeper:

$ZOOKEEPER_HOME/bin/zkServer.sh restart

通过上述方法,ZooKeeper 的运行内存将被限制为 512MB。

相关推荐
程序员JerrySUN12 分钟前
驱动开发硬核特训 · Day 21(上篇) 抽象理解 Linux 子系统:内核工程师的视角
java·linux·驱动开发
雨声不在1 小时前
debian切换用户
linux·服务器·debian
不知名。。。。。。。。1 小时前
Linux—— 版本控制器Git
linux·运维·git
内网渗透1 小时前
OpenWrt 与 Docker:打造轻量级容器化应用平台技术分享
linux·docker·容器·openwrt·软路由
易保山2 小时前
MIT6.S081 - Lab11 networking(网络栈)
linux·操作系统·c
2302_799525742 小时前
【Linux】第十二章 安装和更新软件包
linux·运维·服务器
ImAlex3 小时前
Linux脚本实现自动化运维任务实战案例:系统自动备份、日志轮转、系统更新、资源监控、自动化定时任务调度
linux·运维
杨凯凡3 小时前
Linux日志分析:安全运维与故障诊断全解析
linux·运维·服务器
愚润求学4 小时前
【Linux】进程优先级和进程切换
linux·运维·服务器·c++·笔记
jianghx10244 小时前
Centos 7 ssh连接速度慢(耗时20秒+)
linux·centos·ssh