温馨提示×

linux zookeeper怎么连接

小樊
50
2026-10-01 13:16:17
栏目: 智能运维

在 Linux 上连接 ZooKeeper,常见有 命令行客户端连接 和 程序代码连接 两种方式。下面以最常用的方法说明。


一、使用 ZooKeeper 自带命令行客户端连接

1. 启动 ZooKeeper(如果还没启动)

# 进入 zookeeper 安装目录
cd /opt/zookeeper

# 启动
bin/zkServer.sh start

查看状态:

bin/zkServer.sh status

2. 使用 zkCli.sh 连接 ZooKeeper

连接本机(默认端口 2181)

bin/zkCli.sh

连接远程 ZooKeeper

bin/zkCli.sh -server 192.168.1.100:2181

多个节点可用逗号分隔:

bin/zkCli.sh -server 192.168.1.100:2181,192.168.1.101:2181

3. 常用命令示例

# 查看根节点
ls /

# 创建节点
create /test "hello"

# 获取节点数据
get /test

# 删除节点
delete /test

二、通过 Java 程序连接(示例)

Maven 依赖

<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.8.0</version>
</dependency>

Java 连接示例

import org.apache.zookeeper.ZooKeeper;

public class ZkConnect {
    public static void main(String[] args) throws Exception {
        ZooKeeper zk = new ZooKeeper("192.168.1.100:2181", 5000, null);
        System.out.println(zk.getState());
        zk.close();
    }
}

三、常见问题排查

1. 连接超时

  • 检查防火墙
firewall-cmd --list-ports
  • 开放端口
firewall-cmd --add-port=2181/tcp --permanent
firewall-cmd --reload

2. 无法解析主机

  • 使用 IP 而不是主机名
  • 检查 /etc/hosts

3. ZooKeeper 未启动

bin/zkServer.sh status

如果你是想 集群连接 / Kerberos 认证 / Docker 中连接 / 用 Python 连接,可以告诉我具体场景,我可以给你更针对性的示例。

0 踩