1. 程式人生 > >一臺linux虛擬機器模擬搭建zookeeper叢集及可能遇到的問題解決

一臺linux虛擬機器模擬搭建zookeeper叢集及可能遇到的問題解決

一、zookeeper叢集搭建

1:上傳zookeeper-3.4.13.tar.gz到/myfile/tool(自己定義的存放工具的目錄)目錄下:

2:解壓zookeeper,執行如下命令:

[[email protected] tool]# tar zxf zookeeper-3.4.13.tar.gz 

    解壓後如下圖:

3: 複製zookeeper到/myfile/programfiles/solr_cloud(自己定義的solr叢集的目錄)目錄下,執行如下命令:

[[email protected] tool]# cp -r zookeeper-3.4.13 /myfile/programfiles/solr_cloud/zookeeper01
[
[email protected]
tool]# cp -r zookeeper-3.4.13 /myfile/programfiles/solr_cloud/zookeeper02 [[email protected] tool]# cp -r zookeeper-3.4.13 /myfile/programfiles/solr_cloud/zookeeper03

     複製結果如圖所示:

4:接著執行如下步驟:

     注:touch  myid:表示新建myid檔案

[[email protected] solr_cloud]# cd zookeeper01
[[email protected]
zookeeper01]# mkdir data [[email protected] zookeeper01]# touch myid

    編輯myid檔案:輸入1儲存退出。

     或者另一種快捷命令方式:

     注:echo 2 > data/myid  :表示將2寫入檔案myid中,同時會新建檔案myid

[[email protected] zookeeper02]# mkdir data
[[email protected] zookeeper02]# echo 2 > data/myid

5:進入zookeeper01/conf資料夾,執行命令:mv zoo_sample.cfg   zoo.cfg,修改zoo_sample.cfg的檔名為zoo.cfg

6:編輯zoo.cfg檔案,按如下紅框中進行配置:

注意:以下三類埠號在一個檔案中不能重複

7: 重複步驟456,完成zookeeper02和zookeeper03的配置

    注: zookeeper02中data/myid檔案中內容為:2  

                             zoo.cfg中clientPort為:2182

            zookeeper03中data/myid檔案中內容為::3

                             zoo.cfg中clientPort為:2183

           其他按照 zookeeper01的進行配置即可。

 zookeeper02的zoo.cfg檔案配置 :

 zookeeper03的zoo.cfg檔案配置 : 

8:準備啟動這三個zookeeper節點,寫批處理檔案:

     進入/myfile/programfiles/solr_cloud目錄下,編輯新建的start-zookeepers.sh指令碼檔案:

[[email protected] solr_cloud]# vim start-zookeepers.sh
cd zookeeper01/bin
./zkServer.sh start
cd ../../
cd zookeeper02/bin
./zkServer.sh start
cd ../../
cd zookeeper03/bin
./zkServer.sh start
cd ../../

     儲存退出後,進行授權,u表示當前使用者可以啟動:

[[email protected] solr_cloud]# chmod u+x start-zookeepers.sh 

    如下圖所示:

9:啟動,執行命令:

[[email protected] solr_cloud]# ./start-zookeepers.sh

     執行結果如下圖所示表示:

10:測試

分別進入zookeeper01/bin; zookeeper02/bin; zookeeper03/bin下執行命令:./zkServer.sh status,出現以下結果表示叢集搭建成功。follower表示從節點,leader表示主節點,主從節點的分配隨機。

11:可能會遇到的問題

**修改第8步新建的start-zookeepers.sh檔案,裡面的start改為:start-foreground,可在控制檯查看出錯的原因;

cd zookeeper01/bin
./zkServer.sh start-foreground
cd ../../
cd zookeeper02/bin
./zkServer.sh start-foreground
cd ../../
cd zookeeper03/bin
./zkServer.sh start-foreground
cd ../../

**地址被佔用錯誤:java.net.BindException: Address already in use

   解決辦法: sudo netstat -nltp | grep 2181 可以檢視當前佔用的埠號;sudo kill -9 3071 刪除該程序;

**無法連線錯誤:java.net.ConnectException: Connection refused (Connection refused)

   解決辦法:關閉防火牆,並設定重啟不啟動防火牆;因為本叢集搭建在一臺伺服器上,確保zoo.cfg檔案中ip和埠號按規則都寫正確

**也可以開啟三個xhell視窗,分別同時啟動來進行測試**