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。

相关推荐
Christal_pyy18 分钟前
树莓派4基于Debian GNU/Linux 12 (Bookworm)添加多个静态ipv4网络
linux·网络·debian
csbDD1 小时前
2025年网络安全(黑客技术)三个月自学手册
linux·网络·python·安全·web安全
Natsuagin4 小时前
轻松美化双系统启动界面与同步时间设置(Windows + Ubuntu)
linux·windows·ubuntu·grub
我们的五年4 小时前
【Linux网络编程】应用层协议HTTP(请求方法,状态码,重定向,cookie,session)
linux·网络·http
我们的五年6 小时前
【Linux网络】TCP/IP地址的有机结合(有能力VS100%???),IP地址的介绍
linux·运维·网络·tcp/ip
davenian6 小时前
< OS 有关 > Ubuntu 24 SSH 服务器更换端口 in jp/us VPSs
linux·ubuntu·ssh
诚信爱国敬业友善7 小时前
GUI编程(window系统→Linux系统)
linux·python·gui
sekaii7 小时前
ReDistribution plan细节
linux·服务器·数据库
YH_DevJourney8 小时前
Linux-C/C++《C/8、系统信息与系统资源》
linux·c语言·c++
威哥爱编程8 小时前
Linux驱动开发13个实用案例
linux