(1)安裝JDK 【此步驟省略】。服務器
(2)Zookeeper壓縮包上傳到服務器測試
(3)將Zookeeper解壓 ,建立data目錄 ,將 conf下zoo_sample.cfg 文件更名爲 zoo.cfgspa
(4)創建/usr/local/zookeeper-cluster目錄,將解壓後的Zookeeper複製到如下三個目錄.net
/usr/local/zookeeper-cluster/zookeeper-13d
/usr/local/zookeeper-cluster/zookeeper-2server
/usr/local/zookeeper-cluster/zookeeper-3blog
[root@localhost ~]# mkdir /usr/local/zookeeper-clusterci [root@localhost ~]# cp -r zookeeper-3.4.6 /usr/local/zookeeper-cluster/zookeeper-1get [root@localhost ~]# cp -r zookeeper-3.4.6 /usr/local/zookeeper-cluster/zookeeper-2it [root@localhost ~]# cp -r zookeeper-3.4.6 /usr/local/zookeeper-cluster/zookeeper-3 |
修改/usr/local/zookeeper-cluster/zookeeper-1/conf/zoo.cfg
clientPort=2181 dataDir=/usr/local/zookeeper-cluster/zookeeper-1/data |
修改/usr/local/zookeeper-cluster/zookeeper-2/conf/zoo.cfg
clientPort=2182 dataDir=/usr/local/zookeeper-cluster/zookeeper-2/data |
修改/usr/local/zookeeper-cluster/zookeeper-3/conf/zoo.cfg
clientPort=2183 dataDir=/usr/local/zookeeper-cluster/zookeeper-3/data |
-------知識點小貼士------ 若是你要建立的文本文件內容比較簡單,咱們能夠經過echo 命令快速建立文件 格式爲: echo 內容 >文件名 例如咱們爲第一個zookeeper指定ID爲1,則輸入命令 |
(2)在每個zookeeper 的 zoo.cfg配置客戶端訪問端口(clientPort)和集羣服務器IP列表。
集羣服務器IP列表以下
server.1=192.168.25.140:2881:3881 server.2=192.168.25.140:2882:3882 server.3=192.168.25.140:2883:3883 |
解釋:server.服務器ID=服務器IP地址:服務器之間通訊端口:服務器之間投票選舉端口
-----知識點小貼士----- 咱們可使用EditPlus遠程修改服務器的文本文件的內容,更加便捷 (1)在菜單選擇FTP Settings (2)點擊ADD按鈕 (3)輸入服務器信息
(5)選擇SFTP 端口22 (6)OK 。完成配置 鏈接: 哈哈,無敵啦~~~~ 你可能要問,老師,你爲啥不早告訴我有這一招 ! |
啓動集羣就是分別啓動每一個實例。
啓動後咱們查詢一下每一個實例的運行狀態
先查詢第一個服務
Mode爲follower表示是跟隨者(從)
再查詢第二個服務Mod 爲leader表示是領導者(主)
查詢第三個爲跟隨者(從)
(1)首先咱們先測試若是是從服務器掛掉,會怎麼樣
把3號服務器停掉,觀察1號和2號,發現狀態並無變化
由此得出結論,3個節點的集羣,從服務器掛掉,集羣正常
(2)咱們再把1號服務器(從服務器)也停掉,查看2號(主服務器)的狀態,發現已經中止運行了。
由此得出結論,3個節點的集羣,2個從服務器都掛掉,主服務器也沒法運行。由於可運行的機器沒有超過集羣總數量的半數。
發現新的leader產生了~
由此咱們得出結論,當集羣中的主服務器掛了,集羣中的其餘服務器會自動進行選舉狀態,而後產生新得leader
(5)咱們再次測試,當咱們把2號服務器從新啓動起來(汗~~這是詐屍啊!)啓動後,會發生什麼?2號服務器會再次成爲新的領導嗎?咱們看結果
咱們會發現,2號服務器啓動後依然是跟隨者(從服務器),3號服務器依然是領導者(主服務器),沒有撼動3號服務器的領導地位。哎~退休了就是退休了,說了不算了,哈哈。
由此咱們得出結論,當領導者產生後,再次有新服務器加入集羣,不會影響到現任領導者。