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-4 集群伪分布异常提示
产生如图15-4所示的异常信息是由于ZooKeeper服务的每个实例都拥有全局的配置信息,它们在启动的时候会随时地进行Leader选举操作(此部分内容后面将会详细讲述)。此时第一个启动的Zookeeper需要和另外两个ZooKeeper实例进行通信。但是,另外两个ZooKeeper实例还没有启动起来,因此就产生了这样的异常信息。
我们直接将其忽略即可,待把图示中的“2号”和“3号”ZooKeeper实例启动起来之后,相应的异常信息就会自然而然的消失了。
4.ZooKeeper四字命令
ZooKeeper支持某些特定的四字命令字母与其的交互。它们大多是查询命令,用来获取ZooKeeper服务的当前状态及相关信息。用户在客户端可以通过telnet或nc向ZooKeeper提交相应的命令。ZooKeeper常用的四字命令见表15-2。
图15-5是ZooKeeper四字命令的一个简单用例。
图 15-5 ZooKeeper四字命令用例
5.ZooKeeper命令行工具
在成功启动ZooKeeper服务之后,输入下述命令,连接到ZooKeeper服务:
zkCli.sh-server 10.77.20.23:2181
连接成功后,系统会输出ZooKeeper的相关环境及配置信息,并在屏幕输出“Welcome to ZooKeeper”等信息。
输入help之后,屏幕会输出可用的ZooKeeper命令,如图15-6所示:
图 15-6 ZooKeeper命令