一、centos7下安裝zookeeper
1.zookeeper 下載地址
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/
2.安裝步驟
前提:安裝 jdk 和 JAVA_HOME
第一步:解壓縮 zookeeper 安裝包
[root@VM_0_11_centos ~]# mkdir zookeeper [root@VM_0_11_centos ~]# tar -zxvf apache-zookeeper-3.5.5-bin.tar.gz -C zookeeper/
第二步:進入 zookeeper/apache-zookeeper-3.5.5-bin/conf 目錄,修改配置文件把zoo_sample.cfg改名為zoo.cfg
[root@VM_0_11_centos conf]# cp zoo_sample.cfg zoo.cfg
第三步:創建數據文件目錄
[root@VM_0_11_centos zookeeper]# mkdir datadir [root@VM_0_11_centos zookeeper]# ls apache-zookeeper-3.5.5-bin datadir
[root@VM_0_11_centos zookeeper]# cd datadir/
[root@VM_0_11_centos datadir]# pwd
/root/zookeeper/datadir
第四步:修改 zoo.cfg 文件
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/root/zookeeper/datadir clientPort=2181
保存退出
3.啟動
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# ls bin docs LICENSE.txt README.md conf lib NOTICE.txt README_packaging.txt [root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh start ZooKeeper JMX enabled by default Using config: /root/zookeeper/apache-zookeeper-3.5.5-bin/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@VM_0_11_centos apache-zookeeper-3.5.5-bin]#
在運行完第一條指令之后,會出現一些錯誤異常,產生異常信息的原因是由於Zookeeper 服務的每個實例都擁有全局配置信息,他們在啟動的時候會隨時隨地的進行Leader選舉操作。此時,第一個啟動的Zookeeper需要和另外兩個 Zookeeper實例進行通信。但是,另外兩個Zookeeper實例還沒有啟動起來,因此就產生了這的異樣信息。我們直接將其忽略即可,待把圖中“2 號”和“3號”Zookeeper實例啟動起來之后,相應的異常信息自然會消失。
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh status conf/zoo.cfg ZooKeeper JMX enabled by default Using config: conf/zoo.cfg Client port found: 2181. Client address: localhost. Error contacting service. It is probably not running.
4.查看進程狀態
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# jps 9958 Jps 9710 QuorumPeerMain [root@VM_0_11_centos apache-zookeeper-3.5.5-bin]#
5.啟動客戶端
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkCli.sh
二、zookeeper 集群的搭建
前言:本次集群是在一台服務器上搭建的在,一台機器上部署了3個 server,需要注意的是在集群為分布式模式下我們使用的每個配置文檔模擬一台機器,也就是說單台機器及上運行多個 Zookeeper 實例。但是,必須保證每個配置文檔的各個端口號不能沖突,除了 clientPort 不同之外,dataDir 也不同。另外,還要在 dataDir 所對應的目錄中創建 myid 文件來指定對應的 Zookeeper 服務器實例。
1.創建必要目錄與文件
Zookeeper集群中,每一個節點都需創建data目錄、dataLog目錄以及myid文件。
1).先創建節點文件
[root@VM_0_11_centos zookeeper]# mkdir server1 [root@VM_0_11_centos zookeeper]# mkdir server2 [root@VM_0_11_centos zookeeper]# mkdir server3
2).創建每個節點所必須的data目錄、dataLog目錄以及myid文件
[root@VM_0_11_centos zookeeper]# cd server1 [root@VM_0_11_centos server1]# mkdir data [root@VM_0_11_centos server1]# pwd /root/zookeeper/server1 [root@VM_0_11_centos server1]# mkdir dataLog [root@VM_0_11_centos server1]# pwd /root/zookeeper/server1 [root@VM_0_11_centos server1]# cd data [root@VM_0_11_centos data]# echo 1 > myid [root@VM_0_11_centos data]# ls myid [root@VM_0_11_centos data]#
其他的節點文件和這個類似,只是 server1 的 myid 文件里面是1 ,而 server2 的 myid 文件里面是2,而 server3 的 myid 文件里面是3。其值為后續zoo.cfg中配置的第幾號服務器。
2.修改 zoo.cfg 文件
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/root/zookeeper/server1/data dataLogDir=/root/zookeeper/server1/dataLog clientPort=2181 server.1=127.0.0.1:2888:3888 server.2=127.0.0.1:2889:3889 server.3=127.0.0.1:2890:3890
3.創建 zoo2.cfg 和 zoo3.cfg 文件
[root@VM_0_11_centos conf]# ls configuration.xsl zoo.cfg log4j.properties zoo_sample.cfg [root@VM_0_11_centos conf]# cp zoo.cfg zoo2.cfg [root@VM_0_11_centos conf]# cp zoo.cfg zoo3.cfg [root@VM_0_11_centos conf]# ls configuration.xsl zoo2.cfg zoo.cfg log4j.properties zoo3.cfg zoo_sample.cfg [root@VM_0_11_centos conf]#
4.根據第三步修改 zoo2.cfg 和 zoo3.cfg 配置文件
clientPort=2182
dataDir=/root/zookeeper/server2/data
dataLogDir=/root/zookeeper/server2/dataLog
clientPort=2183
dataDir=/root/zookeeper/server3/data dataLogDir=/root/zookeeper/server3/dataLog
5.啟動服務
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh start conf/zoo.cfg ZooKeeper JMX enabled by default Using config: conf/zoo.cfg Starting zookeeper ... FAILED TO START [root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh start conf/zoo2.cfg ZooKeeper JMX enabled by default Using config: conf/zoo2.cfg Starting zookeeper ... FAILED TO START [root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh start conf/zoo3.cfg ZooKeeper JMX enabled by default Using config: conf/zoo3.cfg Starting zookeeper ... FAILED TO START [root@VM_0_11_centos apache-zookeeper-3.5.5-bin]#
6.查看服務的狀態
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh status conf/zoo3.cfg ZooKeeper JMX enabled by default Using config: conf/zoo3.cfg Client port found: 2183. Client address: localhost. Mode: follower
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh status conf/zoo.cfg ZooKeeper JMX enabled by default Using config: conf/zoo.cfg Client port found: 2181. Client address: localhost. Mode: follower
[root@VM_0_11_centos apache-zookeeper-3.5.5-bin]# bin/zkServer.sh status conf/zoo2.cfg ZooKeeper JMX enabled by default Using config: conf/zoo2.cfg Client port found: 2182. Client address: localhost. Mode: leader //2號節點是 leader 節點 [root@VM_0_11_centos apache-zookeeper-3.5.5-bin]#
