zookeeper集羣結構
master節點
slave1節點
slave2節點
zookeeper分佈式安裝配置步驟
1.下載並解壓得到zookeeper-3.4.6目錄,並新建指向其的鏈接zookeeper,將zookeeper鏈接文件放置/root目錄下
2.配置環境變量
編輯 /etc/profile文件,增加ZOOKEEPER_HOME和PATH變量,如下:
#zookeeper
export ZOOKEEPER_HOME=/root/zookeeper
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib:/root/php/bin:$ZOOKEEPER_HOME/bin
3.修改zookeeper配置文件 conf/zoo.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=/root/zookeeper/data
# 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
dataLogDir=/root/zookeeper/data/logs
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
###########################################
配置文件黑色部分爲默認配置,紅色部分爲需要修改的
dataDir表示zookeeper數據存放目錄,dataLogDir爲日誌存放目錄
server.X用來配置ZooKeeper集羣中的各節點,並建議X的值和myid保持一致。
端口2181用於監聽客戶端的連接,端口2888用於Leader監聽Follower的連接,而3888則用於Leader選舉。
配置完該文件後,就可以把zookeeper目錄複製到相應結點中去了,無需改動。
4.在dataDir目錄新建myid文件
在每個zookeeper的數據目錄dataDir(/root/zookeeper/data)下新建myid文件,用來標識本機對應zookeeper集羣節點的id,所以每個zookeeper節點不一樣,這個最好與配置文件conf/zoo.cfg中的server.X一致。如果master節點的myid內容爲:1
5.啓動zookeeper 服務
啓動命令如下:
[
root@master ~]# zkServer.sh start
JMX enabled by default
Using config: /root/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
注意:在每個zookeeper節點中都需要執行該命令
6.查看zookeeper服務是否啓動成功
#slave1節點爲leader節點
[
root@slave1 Desktop]# zkServer.sh status
JMX enabled by default
Using config: /root/zookeeper/bin/../conf/zoo.cfg
Mode: leader
#master節點爲follower節點
[
root@master ~]# zkServer.sh status
JMX enabled by default
Using config: /root/zookeeper/bin/../conf/zoo.cfg
Mode: follower
還可以通過jps命令查看相應的java進程是否啓動,成功啓動服務後會出現如下進程:
注意:zookeeper-3.4.6版本與之前某些版本不同,之前某些版本zkServer.sh可能有存在漏洞,即使服務啓動成功,但使用 zkServer.sh status命令可能還是顯示沒成功,這時只需要修改下 zkServer.sh文件就行,因爲 zkServer.sh使用了linux nc -q命令,某些linux可能不支持,具體可在網上查,此處不再重複。不過zookeeper-3.4.6不存在這個問題。
7.啓動zookeeper客戶端連接
後來會輸出一大堆信息,當出現 Welcome to ZooKeeper! 表示客戶端連接成功
到此爲止,zookeeper-3.4.6分佈式安裝配置全部完成