zookeeper 安裝啟動(集群配置)


本文主要介紹zk的安裝,和簡單的集群化部署,以能正常啟動為結果導向。

1 環境介紹

   操作系統:centos7

   下載地址  https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso  (在阿里雲鏡像 https://opsx.alibaba.com/mirror 中找的)

    zk版本: 3.4.10 

    下載地址:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/

   (使用前確認jdk已經正確安裝)

2  安裝wget(如果以安裝 跳過該步驟)

   2.1 查看wget 命令是否安裝 

          rpm -qa | grep wget    查找某軟件包是否安裝,用 rpm -qa | grep "軟件或者包的名字"。

   2.2 安裝wget

         yum –y install wget

3 安裝zk

   3.1 下載

  wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

   3.2 解壓 

       tar -zxvf zookeeper-3.4.10.tar.gz

   3.3 移動目錄到usr/local下面

        mv ./zookeeper-3.4.10  /usr/local

4 單機部署多個zk實例(偽分布式)

   這里部署3個實例

    4.1 進入zk文件夾下的conf的文件     

     cd ./zookeeper-3.4.10/conf/

 4.2 打開 zoo_sample.cfg 文件,我們先認識一下這個文件

         

   這里先關注兩個參數

           dataDir:用於存放zk數據的文件夾。

   clientPort:服務的監聽端口。

    4.2 把zoo_sample.cfg 文件復制一份叫 zoo1.cfg,作為實例1的配置     

           4.2.1   復制  cp zoo_sample.cfg  zoo1.cfg

           4.2.2   修改 zoo1.cfg 的 dataDir  存放的位置(不是必須),文件夾先建好

       

            4.2.3   在最后添加集群信息

                        

                        server.[myid] = hostname:節點同步數據端口:zk選舉接口

                        myid 和hostname后面會配置

     4.3  從zoo1.cfg 復制出兩份zoo2.cfg  和zoo3.cfg 分別作為實例2 和實例3的配置

              修改zoo2.cfg  的dataDir  和 clientPort  

              

              修改 zoo3.cfg 的dataDir  和 clientPort  

              

       總結:zoo1,cfg  zoo2.cfg  zoo3.cfg  三分文件 除了端口和文件目錄外 其他都一致

   4.4 配置myid信息

          4.4.1 進入dataDir 所配置的目錄 ,應該有3個文件夾

           

   4.4.2  分別進入這三個文件夾 創建myid文件

              cd zk1

              touch  myid

           4.4.3 分別給這3個myid文件寫入1,2,3 即在4.2.3中配置的server后面的id

                     

                     用如下命令分別寫入

                     echo 1 >> ./zk1/myid

      echo 2 >> ./zk2/myid

      echo 3 >> ./zk3/myid

   4.5 修改你所在機器的hostname,這里我需要改成master

           有兩種修改方式 , 一種是臨時修改,機器重啟后會自動還原, 一種是永久修改。我這里用臨時修改。

            #hostname master         

·       然后重新連接就能看到hostname 被修改成功了           

            

   5 啟動,查看

      進入到bin目錄

      啟動三個實例

      # ./zkServer.sh start ../conf/zoo1.cfg

      # ./zkServer.sh start ../conf/zoo2.cfg

       # ./zkServer.sh start ../conf/zoo3.cfg

    當存在實例沒有啟動的時候,你查看已啟動的狀態會出現如下異常

      

      查看狀態的命令 即把 啟動命令中的start換成status

      當3個實例全部啟動后,使用jps命令查看是否啟動

       

         jps 要做安裝jdk后才能使用,當看到出現3個QuorumPeerMain的時候表示成功   

         全部啟動成功后,然后查看實例的狀態  這里我查看實例3的狀態

         # ./zkServer.sh status ../conf/zoo3.cfg

        

         這里可以看到 實例3 是個follower ,實例1和實例2中有一個master.

  6 真分布式

     即把上面的三個實例分布在不同的機器上,然后分別配置自己的zoo.cfg文件和myid ,然后分別啟動即可

  

  7 總結

     在配置過程中,要注意3個實例的端口號不能沖突,myid文件必須在各種的數據目錄下面,myid的內容必須和你配置的集群信息相同

     當3個實例全部啟動后,查看狀態的時候,出現Error contacting service.It is probably not running ,可能原因是防火牆沒有關閉。可以嘗試關閉防火牆

     同時可以在bin目錄下的zookeeper.out文件中查看出錯的具體原因。

     一個集群有N個節點,必須保證有N/2 +1個幾點正常,集群才能正常工作,推薦集群節點總是為基數

 

              

     

 

 

      

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM