15.2.3 运行ZooKeeper

1.单机模式下运行ZooKeeper

如果大家已经按照15.2.1节中的第2点正确地配置了ZooKeeper的环境变量,那么我们现在可以直接在终端运行ZooKeeper的sh脚本了,从而启动ZooKeeper的服务。

大家可以通过下面的命令来启动ZooKeeper服务:


zkServer.sh start


这个命令默认情况下执行ZooKeeper的conf文件夹下的zoo.cfg配置文件。当运行成功时大家会看到类似如下的提示界面:


root@ubuntu:~#zkServer.sh start

JMX enabled by default

Using config:/root/hadoop-0.20.2/zookeeper-3.4.3/bin/../conf/zoo.cfg

Starting zookeeper……

STARTED

……

2011-01-19 10:04:42,300-WARN[main:QuorumPeerMain@105]-Either no config or no

quorum defined in config, running in standalone mode

……

2011-01-19 10:04:42,419-INFO[main:ZooKeeperServer@660]-tickTime set to 2000

2011-01-19 10:04:42,419-INFO[main:ZooKeeperServer@669]-minSessionTimeout

set to-1

2011-01-19 10:04:42,419-INFO[main:ZooKeeperServer@678]-maxSessionTimeout

set to-1

2011-01-19 10:04:42,560-INFO[main:NIOServerCnxn$Factory@143]-binding to port

0.0.0.0/0.0.0.0:2181

2011-01-19 10:04:42,806-INFO[main:FileSnap@82]-Reading snapshot/root/

hadoop-0.20.2/zookeeper-3.4.3/data/version-2/snapshot.200000036

2011-01-19 10:04:42,927-INFO[main:FileSnap@82]-Reading snapshot/root/

hadoop-0.20.2/zookeeper-3.4.3/data/version-2/snapshot.200000036

2011-01-19 10:04:42,950-INFO[main:FileTxnSnapLog@208]-Snapshotting:

400000058


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

2.集群模式下运行ZooKeeper

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

3.集群伪分布模式下运行ZooKeeper

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


zkServer.sh start zoo1.cfg

zkServer.sh start zoo2.cfg

zkServer.sh start zoo3.cfg


在运行完第一条命令之后,大家将会发现一些系统错误提示,如图15-4所示。

15.2.3 运行ZooKeeper - 图1

图 15-4 集群伪分布异常提示

产生如图15-4所示的异常信息是由于ZooKeeper服务的每个实例都拥有全局的配置信息,它们在启动的时候会随时地进行Leader选举操作(此部分内容后面将会详细讲述)。此时第一个启动的Zookeeper需要和另外两个ZooKeeper实例进行通信。但是,另外两个ZooKeeper实例还没有启动起来,因此就产生了这样的异常信息。

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

4.ZooKeeper四字命令

ZooKeeper支持某些特定的四字命令字母与其的交互。它们大多是查询命令,用来获取ZooKeeper服务的当前状态及相关信息。用户在客户端可以通过telnet或nc向ZooKeeper提交相应的命令。ZooKeeper常用的四字命令见表15-2。

15.2.3 运行ZooKeeper - 图2

图15-5是ZooKeeper四字命令的一个简单用例。

15.2.3 运行ZooKeeper - 图3

图 15-5 ZooKeeper四字命令用例

5.ZooKeeper命令行工具

在成功启动ZooKeeper服务之后,输入下述命令,连接到ZooKeeper服务:


zkCli.sh-server 10.77.20.23:2181


连接成功后,系统会输出ZooKeeper的相关环境及配置信息,并在屏幕输出“Welcome to ZooKeeper”等信息。

输入help之后,屏幕会输出可用的ZooKeeper命令,如图15-6所示:

15.2.3 运行ZooKeeper - 图4

图 15-6 ZooKeeper命令