Zookeeper(42)Zookeeper的启动命令是什么?

打印 上一主题 下一主题

主题 1804|帖子 1804|积分 5414

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
启动 Zookeeper 服务器的命令依靠于 Zookeeper 的安装路径和配置文件位置。以下是详细的步骤和相关代码示例,涵盖了单节点模式和集群模式的启动方法。
单节点模式启动

假设 Zookeeper 已经安装在 /path/to/zookeeper 目录下,并且配置文件 zoo.cfg 位于 conf 目录中。
1. 启动 Zookeeper 服务器

在终端中导航到 Zookeeper 的安装目录,并使用 zkServer.sh 脚本启动 Zookeeper 服务器。
  1. cd /path/to/zookeeper
  2. bin/zkServer.sh start conf/zoo.cfg
复制代码
2. 查抄 Zookeeper 服务器状态

使用 zkServer.sh 脚本查抄 Zookeeper 服务器的状态。
  1. bin/zkServer.sh status conf/zoo.cfg
复制代码
3. 停止 Zookeeper 服务器

使用 zkServer.sh 脚本停止 Zookeeper 服务器。
  1. bin/zkServer.sh stop conf/zoo.cfg
复制代码
集群模式启动

在集群模式下,每个 Zookeeper 节点都有一个唯一的 ID,并且全部节点共享相同的 zoo.cfg 配置文件。以下是一个三节点集群的示例。
1. 配置文件示例(zoo.cfg)

以下是 zoo.cfg 文件的示例配置,假设集群中有三个节点。
  1. tickTime=2000
  2. initLimit=10
  3. syncLimit=5
  4. dataDir=/var/lib/zookeeper
  5. dataLogDir=/var/lib/zookeeper/logs
  6. clientPort=2181
  7. # Servers in the ensemble
  8. server.1=zoo1:2888:3888
  9. server.2=zoo2:2888:3888
  10. server.3=zoo3:2888:3888
复制代码
2. 设置 myid 文件

在每个节点上,创建 dataDir 目录,并在其中创建一个 myid 文件,文件内容为该节点的 ID。
比方,对于节点 1:
  1. echo "1" > /var/lib/zookeeper/myid
复制代码
对于节点 2:
  1. echo "2" > /var/lib/zookeeper/myid
复制代码
对于节点 3:
  1. echo "3" > /var/lib/zookeeper/myid
复制代码
3. 启动每个节点

在每个节点上,使用 zkServer.sh 脚本启动 Zookeeper 服务器。以下是节点 1 的启动命令,节点 2 和节点 3 雷同,只需在各自的服务器上执行相同的命令。
  1. cd /path/to/zookeeper
  2. bin/zkServer.sh start conf/zoo.cfg
复制代码
4. 查抄每个节点的状态

在每个节点上,使用 zkServer.sh 脚本查抄 Zookeeper 服务器的状态。
  1. bin/zkServer.sh status conf/zoo.cfg
复制代码
5. 停止每个节点

在每个节点上,使用 zkServer.sh 脚本停止 Zookeeper 服务器。
  1. bin/zkServer.sh stop conf/zoo.cfg
复制代码
使用 Java 客户端毗连 Zookeeper

以下是一个使用 Java 客户端毗连 Zookeeper 并进行根本操作的示例代码。
添加 Maven 依靠

在 pom.xml 中添加 Zookeeper 的依靠:
  1. <dependency>
  2.     <groupId>org.apache.zookeeper</groupId>
  3.     <artifactId>zookeeper</artifactId>
  4.     <version>3.7.0</version>
  5. </dependency>
复制代码
示例代码

  1. import org.apache.zookeeper.CreateMode;
  2. import org.apache.zookeeper.WatchedEvent;
  3. import org.apache.zookeeper.Watcher;
  4. import org.apache.zookeeper.ZooDefs;
  5. import org.apache.zookeeper.ZooKeeper;
  6. import org.apache.zookeeper.data.Stat;
  7. public class ZookeeperExample {
  8.     private static final String ZK_ADDRESS = "localhost:2181";
  9.     private static final int SESSION_TIMEOUT = 3000;
  10.     private ZooKeeper zooKeeper;
  11.     public ZookeeperExample() throws Exception {
  12.         zooKeeper = new ZooKeeper(ZK_ADDRESS, SESSION_TIMEOUT, new Watcher() {
  13.             @Override
  14.             public void process(WatchedEvent event) {
  15.                 System.out.println("Received event: " + event);
  16.             }
  17.         });
  18.     }
  19.     public void createNode(String path, String data) throws Exception {
  20.         zooKeeper.create(path, data.getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
  21.         System.out.println("Node created: " + path + " with data: " + data);
  22.     }
  23.     public String readNode(String path) throws Exception {
  24.         byte[] data = zooKeeper.getData(path, false, new Stat());
  25.         return new String(data);
  26.     }
  27.     public void updateNode(String path, String data) throws Exception {
  28.         zooKeeper.setData(path, data.getBytes(), -1);
  29.         System.out.println("Node updated: " + path + " with data: " + data);
  30.     }
  31.     public void deleteNode(String path) throws Exception {
  32.         zooKeeper.delete(path, -1);
  33.         System.out.println("Node deleted: " + path);
  34.     }
  35.     public void close() throws Exception {
  36.         zooKeeper.close();
  37.     }
  38.     public static void main(String[] args) throws Exception {
  39.         ZookeeperExample example = new ZookeeperExample();
  40.         // 创建节点
  41.         String path = "/example/path";
  42.         String data = "Hello, Zookeeper!";
  43.         example.createNode(path, data);
  44.         // 读取节点数据
  45.         String readData = example.readNode(path);
  46.         System.out.println("Data read from node: " + readData);
  47.         // 更新节点数据
  48.         String newData = "Updated data";
  49.         example.updateNode(path, newData);
  50.         // 读取更新后的数据
  51.         readData = example.readNode(path);
  52.         System.out.println("Data read from node after update: " + readData);
  53.         // 删除节点
  54.         example.deleteNode(path);
  55.         // 关闭连接
  56.         example.close();
  57.     }
  58. }
复制代码
总结


  • 单节点模式启动

    • 使用 zkServer.sh start 命令启动 Zookeeper 服务器。
    • 使用 zkServer.sh status 查抄服务器状态。
    • 使用 zkServer.sh stop 停止服务器。

  • 集群模式启动

    • 配置 zoo.cfg 文件,指定集群中的服务器信息。
    • 在每个节点上创建 myid 文件,指定节点的 ID。
    • 在每个节点上使用 zkServer.sh 脚本启动、查抄和停止 Zookeeper 服务器。

  • 使用 Java 客户端

    • 通过 Maven 添加 Zookeeper 的依靠。
    • 使用 Zookeeper Java API 进行节点的创建、读取、更新和删除操作。

通过以上详细的步骤和代码示例,可以乐成启动和配置 Zookeeper 服务器,并通过客户端与 Zookeeper 交互,执行根本的节点操作。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81428

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表