1. 程式人生 > >CentOS7單機安裝Zookeeper偽叢集

CentOS7單機安裝Zookeeper偽叢集

操作環境

CentOS:CentOS-7-x86_64-DVD-1503-01

ZooKeeper:zookeeper-3.4.13.tar.gz

安裝wget命令

  • yum -y install wget

安裝Java

  1. 檢視當前系統是否有Java

  2. java -version

  1. 檢視yum庫中都有哪些jdk版本

    yum search java|grep jdk
  2. 安裝Java1.8(期間會有兩次詢問,均輸入y即可)

    yum install java-1.8.0-openjdk
  3. 檢視Java版本,驗證是否安裝成功

  4. java -version

單機安裝Zookeeper偽叢集

  1. 建立安裝路徑:

    mkdir -p /usr/local/dev/zookeeper
  2. 下載Zookeeper:

    wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
  3. 下載完成後進行解壓:

    tar zxvf zookeeper-3.4.13.tar.gz
  4. 將解壓後的Zookeeper檔案重新命名並複製,共三份:

    mv zookeeper-3.4.13 zookeeper-3.4.13_1
    cp -a zookeeper-3.4.13_1 zookeeper-3.4.13_2
  5. 分別進行三個zookeeper資料夾下的conf目錄下,建立zoo.cfg檔案:

    cp zoo_sample.cfg zoo.cfg
  6. 修改這三個zoo.cfg的內容,並建立/var/lib/zookeeper_1、/var/lib/zookeeper_2、/var/lib/zookeeper_3目錄:

  7. 下面說明一下需要注意的幾點:

    • dataDir屬性配置的目錄是指例項資料的存放路徑,不同的例項需進行區分。

    • clientPort是指客戶端連線本例項的埠號,不同的例項也要區分。比如,可以分別指定為:2181、2182、2183。

    • server.{X}這個X可以取數字,用來標識叢集中唯一的一個例項。配置了多少個server.{X}就表示叢集中有多少個例項。後面值的格式為:{host}:{port1}:{port2}

      其中:

      • {host}為例項所在的主機IP,這裡由於都在一臺機器上,所以都指定為本機地址;

      • {port1}是叢集中例項之間用於資料通訊的埠;

      • {port2}是叢集中例項進行leader選舉時使用的通訊埠(注:對於同一例項{port1}和{port2}是不可相同的。對於同一臺機器部署多個例項的情況,不同例項的同一種埠也是需要區分的)。

  8. 配置myId檔案

    前面提到的server.{X}配置項中的{X}就是一個例項的myid,它需要被寫在對應例項的{dataDir}/myid檔案中。

    下面需要在每一個例項指定的{dateDir}目錄下建立一個名為myid的檔案,檔案的內容就是一個數字,對應server.{X}中的X。

    比如,這裡是這樣配置的: 在/var/lib/zookeeper_1/myid檔案中寫入1; 在/var/lib/zookeeper_2/myid檔案中寫入2; 在/var/lib/zookeeper_3/myid檔案中寫入3。

  9. 建立啟動和停止指令碼

    對於多個例項,分別啟動和停止比較麻煩,可以寫一個指令碼來自動完成這個工作。 start-zk-servers.sh的內容

    echo `/usr/local/dev/zookeeper/zookeeper-3.4.13_1/bin/zkServer.sh start`
    echo `/usr/local/dev/zookeeper/zookeeper-3.4.13_2/bin/zkServer.sh start`
    echo `/usr/local/dev/zookeeper/zookeeper-3.4.13_3/bin/zkServer.sh start`

    stop-zk-servers.sh的內容:

    echo `/usr/local/dev/zookeeper/zookeeper-3.4.13_1/bin/zkServer.sh stop`
    echo `/usr/local/dev/zookeeper/zookeeper-3.4.13_2/bin/zkServer.sh stop`
    echo `/usr/local/dev/zookeeper/zookeeper-3.4.13_3/bin/zkServer.sh stop`

    指令碼建立後需要對指令碼進行授權,預設授權最大許可權:

    chmod 777 ./start-zk-servers.sh
    chmod 777 ./stop-zk-servers.sh

10.現在可以啟動zookeeper了