安装和运行ZooKeeper
首次尝试使用ZooKeeper时,最简单的方式是在一台ZooKeeper服务器上以独立模式(standalone m0de)运行,例如,可以在一台用于开发的机器上尝试运行。运行 ZooKeeper需要安装有Java 6,因此首先要确认已经安装了 Java 6. ZooKeeper提 供Windows版本的脚本,因此在Windows环境中运行ZooKeeper时不需要 Cygwin。只支持使用Windows作为开发平台,而不能作为生产平台。
ZooKeeper提供了少数几个能够运行服务并与之交互的二进制文件,可以很方便地 将包含这些二进制文件的目录加入命令行路径:
% export ZOOKEEPER_INSTALL=/home/tom/zookeepen-x.y.z % export PATH=$PATH:$ZOOKEEPER_INSTALL/bin
在运行ZooKeeper服务之前,我们需要新建一个配置文件。这个配置文件习惯上命 名为zoo.cfg,并保存在coK/子目录中。也可以把它保存在/e/c/zooAeeper子目录 中;如果设置了环境变量ZOOCFGDIR,也可以保存在该环境变量所指定的目录 中。配置文件的内容例如下:
tickTime=2000dataDin=/Usens/tom/zookeeperclientPont=2181
这是一个标准的Java属性文件,本例中所定义的三个属性是以独立模式运行 ZooKeeper所需的最低要求。简单地说,tickTime属性指定了 ZooKeeper的基本 时间单元(以毫秒为单位);dataDir属性指定了ZooKeeper存储持久数据的本地文 件系统位置;clientPort属性指定了 ZooKeeper用于监听客户端连接的端口(通 常使用2181端口)。应该将dataDir属性修改为系统所要求的本地文件系统位置。
定义好合适的配置文件之后,我们现在可以启动一个本地ZooKeeper服务器:
% zkServer.sh start
使用nc(telnet也可以)发送ruok命令(“Are you 0K?”)到监听端口,检查 ZooKeeper是否正在运行:
% echo ruok | nc localhost 2181imok
imok是ZooKeeper在说“I’m OK”。还有其他一些用于和ZooKeeper进行交互的 命令,都采用类似的四个字母组合。这些命令中的大多数是用于查询,例如: dump命令用于列出会话和“短暂”(ephemeral)znode; envi命令用于列出服务器 属性;reqs命令用于列出未完成的请求,stat命令用于列出服务统计信息和连接 的客户端。不过也有一些命令用于更新ZooKeeper的状态,例如:srst命令用于 重置服务统计信息;从运行ZooKeeper服务器的主机上发出kill命令可以关闭 ZooKeeper。
要想进一步了解ZooKeeper的监控(更多的四宇母命令),可以参考ZooKeeper的 JMX支持。相关内容可以在ZooKeeper的文档中找到(http://hadoop. apache, org/zookeeperf)。