Hadoop 分佈式下安裝和配置 ZooKeeper(CentOS 7系統)

軟件版本

  • 電腦系統:macOS 10.14.6node

  • 虛擬機軟件:Parallels Desktop15apache

  • Hadoop各節點節點操做系統:CentOS-7-x86_64-Minimal-1908.isovim

  • CentOS 7 JDK版本:jdk1.8.0_162bash

  • Hadoop版本:hadoop-2.7.7服務器

  • ZooKeeper版本:zookeeper-3.4.13app


環境配置說明

  • 電腦配置:MacBook Pro 13(8G + 256G)分佈式

  • 三臺 CentOS 7 配置:內存1G、硬盤13G(與Mac徹底隔離的虛擬機)oop

  • 三臺 CentOS 7 的名字及IP:node1(10.211.55.18)、node2(10.211.55.19)、node3(10.211.55.20)操作系統

  • 三臺虛擬機的用戶名:lyh.net

  • node爲主結點、node二、node3爲次節點


安裝前提

安裝jdk,並配置好Linux環境變量。

參考文獻:Hadoop分佈式集羣搭建 的JDK安裝部分


ZooKeeper的安裝與配置

三臺node主機都須要配置,這裏沒有采用配置好一臺,分發到另外兩臺的方式。

  1. 本地下載zookeeper-3.4.13.tar.gz:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz

  2. 將下載好的zookeeper-3.4.13.tar.gz上傳到node一、node二、node3

    scp -r ~/Desktop/zookeeper-3.4.13.tar.gz lyh@10.211.55.18:/app
    scp -r ~/Desktop/zookeeper-3.4.13.tar.gz lyh@10.211.55.19:/app
    scp -r ~/Desktop/zookeeper-3.4.13.tar.gz lyh@10.211.55.20:/app
  3. 將上傳上來的zookeeper-3.4.13.tar.gz解壓

    cd /app
    tar -zxvf zookeeper-3.4.13.tar.gz
  4. 爲zookeeper-3.4.13建立軟連接

    ln -s zookeeper-3.4.13 zookeeper
  5. 拷貝simple_zoo.cfg 爲 zoo.cfg

    cd /app/zookeeper/conf
    cp zoo_sample.cfg zoo.cfg
  6. 編輯zoo.cfg文件

    cd /app/zookeeper/conf
    vim zoo.cfg

    修改內容以下(能夠參考):

    # 服務器與服務器之間 或 客戶端與服務器之間維持心跳的時間間隔,每隔tickTime時間就會發送一個心跳。
    tickTime=2000
    
    # 配置 Zookeeper 接受客戶端(此客戶端不是用戶鏈接 Zookeeper 服務器的客戶端,而是 Zookeeper 服務器集羣中鏈接到 Leader 的 Follower 服務器)初始化鏈接時最長能忍受多少個
    # 心跳時間間隔數。當已超過initLimit個tickTime長度後 Zookeeper 服務器尚未收到客戶端的返回信息,則代表客戶端鏈接失敗。總的時間長度就是 initLimit * tickTime 秒。
    initLimit=10
    
    # 配置 Leader 與 Follower 之間發送消息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度,總的時間長度就是 syncLimit * tickTime 秒。
    syncLimit=5
    
    # Zookeeper 保存數據的目錄,默認狀況下,Zookeeper 將寫數據的日誌文件也保存在這個目錄裏。
    dataDir=/app/zookeeper/data
    
    # dataDir和dataLogDir分到不一樣的目錄裏
    dataLogDir=/app/zookeeper/dataLog
    
    # Zookeeper服務器監聽的端口,以接受客戶端的訪問請求。
    clientPort=2181
    
    # 服務器名稱與地址:集羣信息
    # server.A=B:C:D
    # A 爲服務器編號、B 爲服務器的 ip 地址、C 爲這個服務器與集羣中的 Leader 服務器交換信息的端口
    # D 表示的是萬一集羣中的 Leader 服務器掛了,須要一個端口來從新進行選舉,選出一個新的 Leader,此端口就是用來執行選舉時服務器相互通訊的端口。
    # 2888端口是zookeeper服務相互通訊使用的,3888端口是zookeeper服務選舉使用的
    server.1=node1:2888:3888
    server.2=node2:2888:3888
    server.3=node3:2888:3888
  7. 配置 ZooKeeper 環境變量

    vim /etc/profile

    添加以下內容:

    # ZOOKEEPER
    export ZOOKEEPER_HOME=/app/zookeeper
    export PATH=$ZOOKEEPER_HOME/bin:$PATH

    使配置生效

    source /etc/profile
  8. 建立對應配置文件信息的文件夾

    cd /app/zookeeper
    mkdir data
    mkdir dataLog

    若是想要分發到另外兩臺虛擬機,能夠在如今這個時候分發。

  9. 配置 myid 文件

    這個文件在上述dataDir 指定的目錄下,這個文件裏面就只有一個數據,就是 A 的值,Zookeeper 啓動時會讀取這個文件,拿到裏面的數據與 zoo.cfg 裏面的配置信息比較從而判斷究竟是那個 server。

    • 方式1

      node1:

      echo "1" >> /app/zookeeper/data/myid

      node2:

      echo "2" >> /app/zookeeper/data/myid

      node3:

      echo "3" >> /app/zookeeper/data/myid
    • 方式2

      node1

      touch /app/zookeeper/data/myid
      vim /app/zookeeper/data/myid

      添加內容:1


      node2

      touch /app/zookeeper/data/myid
      vim /app/zookeeper/data/myid

      添加內容:2


      node3

      touch /app/zookeeper/data/myid
      vim /app/zookeeper/data/myid

      添加內容:3


  10. 啓動ZooKeeper

    在ZooKeeper集羣的每一個結點上,執行啓動ZooKeeper服務的腳本。zkServer.sh start

    [root@node1 ~ ]# zkServer.sh start
    [root@node2 ~ ]# zkServer.sh start
    [root@node3 ~ ]# zkServer.sh start
  11. 驗證個節點的狀態。zkServer.sh status

    [root@node1 zookeeper]# zkServer.sh status
    [root@node2 zookeeper]# zkServer.sh status
    [root@node3 zookeeper]# zkServer.sh status
  12. 關閉ZooKeeper

    在ZooKeeper集羣的每一個結點上,執行關閉ZooKeeper服務的腳本。zkServer.sh stop

    [root@node1 zookeeper]# zkServer.sh stop
    [root@node2 zookeeper]# zkServer.sh stop
    [root@node3 zookeeper]# zkServer.sh stop

參考文獻

  1. CentOS7安裝配置zookeeper集羣
相關文章
相關標籤/搜索