写点什么

ZooKeeper 进阶(二):ZooKeeper 的运行

  • 2022 年 6 月 14 日
  • 本文字数:882 字

    阅读完需:约 3 分钟

ZooKeeper进阶(二):ZooKeeper的运行

本文主要介绍下Zookeeper单机模式、集群模式、集群伪分布模式运行。

一、单机模式

Linux用户可以通过下面的命令来启动 ZooKeeper 服务:


zkServer.sh start
复制代码


Windows用户可以通过下面的命令来启动 ZooKeeper 服务:


进入 bin 目录,双击:zkServer.cmd,即可。


这个命令默认情况下加载 ZooKeeperconf 文件夹下的 zoo.cfg 配置文件。当运行成功用户会看到类似如下的提示界面:



从上面可以看出,运行成功后,系统会列出 ZooKeeper 运行的相关环境配置信息。


也可以在cmd命令中连接一下


进入cmd下进bin目录,输入:zkCli.cmd 127.0.0.1:2181(或者直接双击bin目录下的zkCli.cmd


二、集群模式

集群模式下需要用户在每台 ZooKeeper 机器上运行第一部分的命令,这里不再赘述。


简单说明ZooKeeper集群是怎么工作的:


首先,每个节点上zoo.cfg配置文件中都有整个集群的列表,所以每个节点之间的通信都是可行的。


然后是dataDir目录下的myid标记了这个机器上的这个节点是zoo.cfg上的集群列表的哪个记录,从这个就能知道当前的这个节点所处的位置,也能知道当前机器的节点是不是leader,以便于执行leader该执行的程序。

三、集群伪分布模式

在集群伪分布模式下,我们只有一台机器,但是要运行三个 ZooKeeper 服务实例。此时,如果再使用上述命令式肯定行不通的。这里,我们通过下面三条命能够令来运行 ZooKeeper。如下所示:


zkServer.sh start zoo1.cfgzkServer.sh start zoo2.cfgzkServer.sh start zoo3.cfg
复制代码


在运行完第一条命令之后,读者将会发现一些系统错误提示:Cannot open channel to 6 at election address slave4......


产生如上所示的异常信息是由于 ZooKeeper 服务的每个实例都拥有全局的配置信息,它们在启动的时候需要随时地进行 Leader 选举操作。此时第一个启动的 Zookeeper 实例需要和另外两个 ZooKeeper 实例进行通信。但是,另外两个 ZooKeeper 实例还没有启动起来,因此将会产生上述所示的异常信息。


我们直接将其忽略即可,因为当把图示中的“ 2 号”和“ 3 号” ZooKeeper 实例启动起来之后,相应的异常信息就回自然而然地消失。

四、附 Zookeeper 下载地址

学技术重在实践,Zookeeper 下载地址:点我下载

发布于: 刚刚阅读数: 4
用户头像

No Silver Bullet 2021.07.09 加入

岂曰无衣 与子同袍

评论

发布
暂无评论
ZooKeeper进阶(二):ZooKeeper的运行_zookeeper_No Silver Bullet_InfoQ写作社区