問題導讀
1、如何啟動ZooKeeper 服務?
2、如何啟動集群
1)單機模式
用戶可以通過下面的命令來啟動 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.3.1/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.3.1/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.3.1/data/version-2/snapshot.200000036
- 2011-01-19 10:04:42,950 - INFO [main:FileTxnSnapLog@208] - Snapshotting: 400000058
從上面可以看出,運行成功后,系統會列出 ZooKeeper 運行的相關環境配置信息。
2)集群模式
集群模式下需要用戶在每台 ZooKeeper 機器上運行第一部分的命令,這里不再贅述。
3)集群偽分布模式
在集群偽分布模式下,我們只有一台機器,但是要運行三個 ZooKeeper 服務實例。此時,如果再使用上述命令式肯定行不通的。這里,我們通過下面三條命能夠令來運行 我們配置的 ZooKeeper 服務。如下所示:
- zkServer.sh start zoo1.cfg
- zkServer.sh start zoo2.cfg
- zkServer.sh start zoo3.cfg
在運行完第一條命令之后,讀者將會發現一些系統錯誤提示,如下圖 1 所示:
<ignore_js_op>

圖 1 :集群偽分布異常提示
產生如上圖所示的異常信息是由於 ZooKeeper 服務的每個實例都擁有全局的配置信息,它們在啟動的時候需要隨時地進行 Leader 選舉操作(此部分內容下面將會詳細講述)。此時第一個啟動的 Zookeeper 需要和另外兩個ZooKeeper 實例進行通信。但是,另外兩個 ZooKeeper 實例還沒有啟動起來,因此將會產生上述所示的異常信息。
我們直接將其忽略即可,因為當把圖示中的“ 2 號”和“ 3 號” ZooKeeper 實例啟動起來之后,相應的異常信息就回自然而然地消失。
文章轉自:http://www.aboutyun.com/thread-9310-1-1.html