1

ZooKeeper入门指南

  • 开始:使用ZooKeeper协调分布式应用程序
  • 必备条件
  • 下载
  • 独立的操作
  • 管理ZooKeeper存储
  • 连接到ZooKeeper
  • ZooKeeper的编程
  • 运行主从复制ZooKeeper
  • 其他优化

开始:使用ZooKeeper协调分布式应用程序

这个文档包含了一些信息,可以帮助你快速开始使用ZooKeeper,它主要针对希望尝试它的开发人员,并包含单个ZooKeeper服务器的简单安装说明,一些命令可以验证它是否正在运行,还有一个简单的编程示例。最后,为了方便起见,有一些关于更复杂的安装部分,例如,运行主从复制部署,并优化事务日志。然而,完整的商业部署说明,请参阅ZooKeeper管理员指南。

必备条件

请参阅管理指南中的系统需求

下载

要获得一个ZooKeeper发行版,请从Apache下载镜像下载一个最近的稳定版本

独立的操作

在独立模式下设置ZooKeeper服务器非常简单,服务器包含在一个JAR文件中,因此安装包括了创建配置。

一旦你下载了一个稳定的ZooKeeper版本,解压它并cd到根目录。

要启动ZooKeeper程序,你需要一个配置文件,这是一个示例,在conf/zoo.cfg中创建它:

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181

这个文件可以被命名为什么名称,但是为了便于讨论,我们将其称为conf/zoo.cfg,更改dataDir的值,以指定一个现有(从空开始)目录,下面是每个字段的含义:

tickTime:被ZooKeeper使用的以毫秒为单位的基础时间单位,它用于进行心跳,并且最小会话超时时间将是tickTime的两倍。
dataDir:存储内存中数据库快照的位置,以及(除非另有指定)数据库更新的事务日志。
clientPort:监听客户端连接的端口。

现在你已经创建了配置文件,可以启动ZooKeeper了:

bin/zkServer.sh start

ZooKeeper使用log4j记录消息 -- 更多细节可以在开发者指南的日志记录部分中找到,你将看到日志消息到达控制台(默认)和/或日志文件,具体取决于log4j配置。

这里列出的步骤在独立模式下运行ZooKeeper,没有主从复制,因此如果ZooKeeper进程故障,服务将会宕机,这对于大多数开发情况来说都很好,但是要在主从复制模式下运行ZooKeeper,请参阅运行主从复制的ZooKeeper。

管理ZooKeeper存储

对于长时间运行的生产系统,ZooKeeper的存储必须由外部管理(dataDir和日志),有关更多细节,请参阅维护部分。

连接到ZooKeeper

$ bin/zkCli.sh -server 127.0.0.1:2181

这允许你执行简单的、类似文件的操作,一旦你连接起来,你应该会看到这样的东西:

Connecting to localhost:2181
log4j:WARN No appenders could be found for logger (org.apache.zookeeper.ZooKeeper).
log4j:WARN Please initialize the log4j system properly.
Welcome to ZooKeeper!
JLine support is enabled
[zkshell: 0]

在shell中,键入help获得可以从客户端执行的命令列表,如:

[zkshell: 0] help
ZooKeeper host:port cmd args
        get path [watch]
        ls path [watch]
        set path data [version]
        delquota [-n|-b] path
        quit
        printwatches on|off
        create path data acl
        stat path [watch]
        listquota path
        history
        setAcl path acl
        getAcl path
        sync path
        redo cmdno
        addauth scheme auth
        delete path [version]
        deleteall path
        setquota -n|-b val path

博弈
2.5k 声望1.5k 粉丝

态度决定一切