安裝Zookeeper-3.5.8

下載zookeeper-3.5.8。選用apache-zookeeper-3.5.8-bin.tar.gz。
在物理機下載完之後,通過ftp服務,將壓縮包發送至虛擬機。我習慣放在~/目錄下,然後就地解壓,這樣不會涉及到權限的問題。

一、配置Zookeeper

1、查看配置文件夾:

[xiaoguan@master zookeeper-3.5.8-bin]$ cd conf
[xiaoguan@master conf]$ ls
configuration.xsl  log4j.properties  zoo_sample.cfg
[xiaoguan@master conf]$ 
[xiaoguan@slave1 ~]$ ./zookeeper-3.5.8-bin/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/xiaoguan/zookeeper-3.5.8-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
[xiaoguan@slave1 ~]$ 

2、生成配置文件

[xiaoguan@master conf]$ cp zoo_sample.cfg zoo.cfg
[xiaoguan@master conf]$ ls
configuration.xsl  log4j.properties  zoo.cfg  zoo_sample.cfg
[xiaoguan@master conf]$ 

3、編輯配置文件

# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/home/xiaoguan/zookeeper-3.5.8/data
dataLogDir=/home/xiaoguan/zookeeper-3.5.8/logs

# 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=192.168.48.135:4001:4002
server.2=192.168.48.136:4001:4002
server.3=192.168.48.137:4001:4002

說明:

  • dataDir和dataLogDir需要在啓動之前就創建好。
  • clientPort 爲 zookeeper的服務端口。
  • server.0、server.1、server.2 爲 zk 集羣中三個結的信息,定義格式爲 hostname:port1:port2,其中 port1 是 node 間通信使用的端口,port2 是node 選舉使用的端口,需確保三臺主機的這兩個端口都是互通的。

二、更改日誌配置

Zookeeper 默認會將控制檯信息輸出到啓動路徑下的 zookeeper.out 中,通過如下方法,可以讓Zookeeper 輸出按尺寸切分的日誌文件:
1)修改/opt/zookeeper-3.4.12/conf/log4j.properties文件,將zookeeper.root.logger=INFO, CONSOLE改爲zookeeper.root.logger=INFO, ROLLINGFILE
2)修改/opt/zookeeper-3.4.12/bin/zkEnv.sh文件,將ZOO_LOG4J_PROP=“INFO,CONSOLE” 改爲ZOO_LOG4J_PROP=“INFO,ROLLINGFILE”

三、在master主機的 dataDir 路徑下創建一個文件名爲 myid 的文件

myid的內容爲爲該 zk 節點的編號:編號在zoo.cfg文件最後server.id。id就是編號。
server.1=192.168.48.135:4001:4002 master編號爲1
server.2=192.168.48.136:4001:4002 slave編號爲2
server.3=192.168.48.137:4001:4002 slave1編號爲3

[xiaoguan@master zookeeper-3.5.8-bin]$ cd data
[xiaoguan@master data]$ ls
[xiaoguan@master data]$ touch myid
[xiaoguan@master data]$ vi myid
[xiaoguan@master data]$ more myid
1

四、將配置好的zookeeper發送至slave結點

[xiaoguan@master ~]$ ls
Desktop    hadoop-2.7.2  Pictures      spark-2.4.6-bin-hadoop2.7  zookeeper-3.5.8
Documents  hadoopdata    Public        Templates                  桌面
Downloads  Music         scala-2.13.2  Videos
[xiaoguan@master ~]$ scp -r zookeeper-3.5.8-bin/ xiaoguan@slave:~/
[xiaoguan@master ~]$ scp -r zookeeper-3.5.8-bin/ xiaoguan@slave1:~/

然後修改下slave的myid文件:

[xiaoguan@master ~]$ ssh slave
Last login: Thu Jun 18 23:29:01 2020 from master
[xiaoguan@slave ~]$ ls
Desktop    hadoop-2.7.2  Pictures      spark-2.4.6-bin-hadoop2.7  zookeeper-3.5.8
Documents  hadoopdata    Public        Templates                  桌面
Downloads  Music         scala-2.13.2  Videos
[xiaoguan@slave ~]$ vi zookeeper-3.5.8-bin/data/myid 
[xiaoguan@slave ~]$ more zookeeper-3.5.8-bin/data/myid 
2
[xiaoguan@slave ~]$ logout
Connection to slave closed.
[xiaoguan@master ~]$ ssh slave1
Last login: Thu Jun 18 21:40:17 2020 from master
[xiaoguan@slave1 ~]$ vi zookeeper-3.5.8-bin/data/myid 
[xiaoguan@slave1 ~]$ more zookeeper-3.5.8-bin/data/myid 
3

五、啓動zookeeper

在每個結點上執行./zkServer.sh start。該命令再zookeeper的bin目錄下。然後使用jps命令可以看到兩個進程:

[xiaoguan@master logs]$ jps
3440 QuorumPeerMain
3737 Jps
[xiaoguan@slave1 ~]$ jps
3317 QuorumPeerMain
3687 Jps
[xiaoguan@slave ~]$ jps
3851 Jps
3423 QuorumPeerMain

在每個結點上都有查看一下,每個結點上都有兩個進程。這樣集羣就啓動成功了。

六、查看集羣的狀態

使用命令./zkServer.sh status。如下,可以看到master和slave是follower,而slave1是leader。

[xiaoguan@master bin]$ ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/xiaoguan/zookeeper-3.5.8-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
[xiaoguan@master bin]$ ssh slave
Last login: Fri Jun 19 12:59:07 2020 from master
[xiaoguan@slave ~]$ ./zookeeper-3.5.8-bin/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/xiaoguan/zookeeper-3.5.8-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
[xiaoguan@slave ~]$ logout
Connection to slave closed.
[xiaoguan@master bin]$ ssh slave1
Last login: Fri Jun 19 12:58:43 2020 from master
[xiaoguan@slave1 ~]$ ./zookeeper-3.5.8-bin/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/xiaoguan/zookeeper-3.5.8-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader

七、檢查集羣的高可用性

首先關掉集羣中的leader也就是slave1:

[xiaoguan@slave1 ~]$ ./zookeeper-3.5.8-bin/bin/zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /home/xiaoguan/zookeeper-3.5.8-bin/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED

然後查看集羣的狀態:

[xiaoguan@master zookeeper-3.5.8-bin]$ ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/xiaoguan/zookeeper-3.5.8-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
[xiaoguan@master zookeeper-3.5.8-bin]$ ssh slave
Last login: Fri Jun 19 13:07:52 2020 from master
[xiaoguan@slave ~]$ ./zookeeper-3.5.8-bin/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/xiaoguan/zookeeper-3.5.8-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
[xiaoguan@slave ~]$ 

可以看到,此時Master被選爲leader。然後再次打開slave1結點,此時slave1應該爲follower:

[xiaoguan@slave1 ~]$ ./zookeeper-3.5.8-bin/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/xiaoguan/zookeeper-3.5.8-bin/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[xiaoguan@slave1 ~]$ ./zookeeper-3.5.8-bin/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/xiaoguan/zookeeper-3.5.8-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
[xiaoguan@slave1 ~]$ 

此時,Zookeeper 集羣的安裝及高可用性驗證已完成!

參考

Kafka:ZK+Kafka+Spark Streaming集羣環境搭建(八)安裝zookeeper-3.4.12

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章