zookeeper集羣(二)

      通過前一篇文章《zookeeper僞集羣一》的閱讀,相信你們對zookeeper集羣已經有必定的瞭解了,接下來咱們再談談zookeeper真集羣。其實真集羣和僞集羣仍是有不少類似的部分的,我將模擬3臺集羣服務而且對其中一臺集羣服務的配置進行講解,接下來兩臺操做基本如出一轍。服務器

     鋪墊:工具

    一、 本人建立3臺虛擬機,Linux版本爲CentOS7,工具爲vmware12測試

              二、外部連接虛擬機的工具爲小xmanager5,這個工具只是方便一些,你也能夠不用spa

     三、須要提早在虛擬機上裝好jdk1.7及以上版本,我使用的是1.8版本的,若是不會裝jdk,能夠參照個人另外一篇文章《Linux下的jdk安裝》server

              四、本人將3臺虛擬機建立好,獲取到的外網地址分別爲192.168.0.124,192.168.0.129,192.168.0.127,我分別取別名爲CentOS1,CentOS3,CentOS4blog

       五、接下來的說明中,若是有關聯關係的地方,我會加粗而且用相同顏色進行標註cmd

  搭建:虛擬機

     一、修改zookeeper下的zoo.cfg文件,具體內容以下: it

tickTime=2000
syncLimit=10
initLimit=5
dataDir=/home/d5000/zk/data
clientPort=3001
dataLogDir=/home/d5000/zk/log
server.1 = 192.168.0.124:2887:3887
server.2 = 192.168.0.129:2887:3887
server.3 = 192.168.0.127:2887:3887集羣

由於是集羣,因此3臺機器的端口號能夠徹底一致,能夠共用一個zoo.cfg文件

              二、在3臺虛擬機上分別建立/home/d5000/zk目錄,而且在zk下建立data目錄,用於存放dataDir配置的映射文件;接下來將zookeeper也傳到zk目錄下,這一點與僞集羣一致

              三、在CentOS1機器的/home/d5000/zk/data下建立myid文件,內容是1

                   在CentOS3機器的/home/d5000/zk/data下建立myid文件,內容是2

                   在CentOS4機器的/home/d5000/zk/data下建立myid文件,內容是3; 

      四、分別給3臺機器zookeeper權限,不然如何啓動呢?能夠先給zookeeper一個啓動權限,進入/home/d5000/zk/zookeeper/bin,執行chmod 777  zkServer.sh

 

至此,集羣建立完畢,真叫那個簡單呀,開開心心的進行測試,分別進行啓動,   ./ zkServer.sh start ,第一臺報錯,第二臺報錯,第三臺仍是報錯,並且錯誤信息一致,都是zookeeper no route to host,上網一查發現,有2個可能致使這個問題的出現,一個是防火牆,另外一個是hostname。

 排查問題:

         一、分別查看3臺機器防火牆是否關閉:firewall-cmd --state,發現防火牆確實沒有關閉,果斷執行關閉systemctl stop firewalld.service

         二、修改CentOS1機器,執行hostname  server.1 命令

     修改CentOS3機器,執行hostname  server.2 命令

               修改CentOS4機器,執行hostname  server.3 命令

         三、重啓虛擬機,init 6     接下來重啓服務

         4,結果仍是報同樣的錯誤  zookeeper no route to host,瞬間懵逼

    

                                                    

  -----------------------------------------------------------------------如下都是心碎,省略一萬字-------------------------------------------------------------------------

 

通過多方努力,最終在掌握必定的虛擬機知識後才發現,systemctl stop firewalld.service關閉的防火牆是暫時的,只要服務一重啓防火牆立馬又生效,還有那個hostname也同樣:

    最終修改     

      一、完全禁用防火牆:systemctl disable firewalld.service 

              二、修改CentOS1機器/etc/hostname文件,內容爲server.1

         修改CentOS3機器/etc/hostname文件,內容爲server.2

                   修改CentOS4機器/etc/hostname文件,內容爲server.3(永久修改)

               三、啓動第一臺、第二臺發現仍是有錯誤信息,可是如今的錯誤信息意見轉變爲connect refuesd(拒絕連接),繼續啓動第三臺服務器,發現沒有報錯信息,並且測試後發現集羣服務正常,第一                     臺報錯是由於第二第三臺服務器沒有啓動致使,第二臺報錯是由於第三臺集羣服務沒啓動致使。這些錯誤徹底不妨礙集羣

    

       下面提供一下最簡單的測試,在192.168.0.124執行  telent  192.168.0.127 3001       telent  192.168.0.129 3001   若是都能連接成功,說明各自的服務已經可以正常運行,而且能夠進行通訊,接下來能夠經過代碼進行更加完善的測試。

效果如圖:

 

                                    完畢

相關文章
相關標籤/搜索