如何啓動ZooKeeper(中)

(2). Module2 僞分佈式模式

上面演示瞭如何啓動單機模式,現在我們來演示設置僞分佈式模式。

我們可以在一臺機器上創建模擬的ZooKeeper集羣服務,假如我們需要3個節點,需要創建3個cfg文件,分別命名爲zoo1.cfg,zoo2.cfg,zoo3.cfg,此外我們還需要創建3個不同的數據文件夾,分別是zoo1,zoo2和zoo3,目錄位於/var/lib/zookeeper,如1-16、1-17和1-18三個配置清單所示。


清單1-16 配置文件zoo1內容

[root@localhost conf]# cat zoo1.cfg

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/var/lib/zookeeper/zoo1

# the port at which the clients will connect

clientPort=2181

# the maximum number of client connections.

# increase this if you need to handle more clients

#maxClientCnxns=60

#

# Be sure to read the maintenance section of the

# administrator guide before turning on autopurge.

#

#http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain in dataDir

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature

#autopurge.purgeInterval=1

server.1=localhost:2666:3666

server.2=localhost:2667:3667

server.3=localhost:2668:3668


清單1-17 配置文件zoo2內容

[root@localhost conf]# cat zoo2.cfg

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=dataDir=/var/lib/zookeeper/zoo2

# the port at which the clients will connect

clientPort=2182

# the maximum number of client connections.

# increase this if you need to handle more clients

#maxClientCnxns=60

#

# Be sure to read the maintenance section of the

# administrator guide before turning on autopurge.

#

#http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain in dataDir

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature

#autopurge.purgeInterval=1

server.1=localhost:2666:3666

server.2=localhost:2667:3667

server.3=localhost:2668:3668


清單1-18 配置文件zoo3內容

[root@localhost conf]# cat zoo3.cfg

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/var/lib/zookeeper/zoo3

# the port at which the clients will connect

clientPort=2183

# the maximum number of client connections.

# increase this if you need to handle more clients

#maxClientCnxns=60

#

# Be sure to read the maintenance section of the

# administrator guide before turning on autopurge.

#

#http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain in dataDir

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature

#autopurge.purgeInterval=1

server.1=localhost:2666:3666

server.2=localhost:2667:3667

server.3=localhost:2668:3668


注意,每一個虛擬機器都對應一個自己的zoo{$}.cfg,其中的{$}需要通過清單1-19所示命令來進行設置。

Tips

由於採用的是“>”,所以命令會創建文件,如果採用“>>”,則Linux會在原有文件基礎上新增內容。


清單1-19 設置myid

[root@localhost conf]# echo 1 > /var/lib/zookeeper/zoo1/myid

[root@localhost conf]# echo 2 > /var/lib/zookeeper/zoo2/myid

[root@localhost conf]# echo 3 > /var/lib/zookeeper/zoo3/myid

接下來我們開始啓動ZooKeeper的3個實例(虛擬的3臺機器),需要調用三次zkServer.sh的Start命令,採用不同的配置文件,如清單1-20所示命令及輸出。


清單1-20 啓動僞分佈式集羣服務

[root@localhost bin]# ./zkServer.sh start/home/zhoumingyao/zookeeper/zookeeper-3.4.7/conf/zoo1.cfg

ZooKeeper JMX enabled by default

Using config: /home/zhoumingyao/zookeeper/zookeeper-3.4.7/conf/zoo1.cfg

Starting zookeeper ... STARTED

[root@localhost bin]# ./zkServer.sh start/home/zhoumingyao/zookeeper/zookeeper-3.4.7/conf/zoo2.cfg

ZooKeeper JMX enabled by default

Using config: /home/zhoumingyao/zookeeper/zookeeper-3.4.7/conf/zoo2.cfg

Starting zookeeper ... STARTED

[root@localhost bin]# ./zkServer.sh start/home/zhoumingyao/zookeeper/zookeeper-3.4.7/conf/zoo3.cfg

ZooKeeper JMX enabled by default

Using config: /home/zhoumingyao/zookeeper/zookeeper-3.4.7/conf/zoo3.cfg

Starting zookeeper ... STARTED


清單1-21 查看服務

[root@localhost bin]# jps

5537 QuorumPeerMain

5617 Jps

5585 QuorumPeerMain

確認服務都正常啓動,我們就可以通過zkCli.sh腳本方式連接到ZooKeeper集羣,命令爲./zkCli.sh -server localhost:2181,localhost:2182,localhost:2183,效果和單機模式一樣。

歡迎關注麥克叔叔每晚十點說,感興趣的朋友可以關注公衆號,一起學習與交流,

發佈了428 篇原創文章 · 獲贊 197 · 訪問量 82萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章