虛擬機-zookeeper集羣搭建

前言

zookeeper的搭建以及集羣搭建是很是簡單的、咱們在工做中經常使用的就是單點模式集羣模式html

本篇的內容爲:apache

  • Zookeeper運行模式
  • Zookeeper搭建(單點、集羣)

官網zookeeper搭建參考:https://zookeeper.apache.org/...centos

正文

1、Zookeeper 運行模式

Zookeeper單點模式集羣模式bash

  • 單點模式(standalone mode)- Zookeeper 只運行在單個服務器上,經常使用於開發測試階段,這種模式比較簡單,可是不能保證Zookeeper服務的高可用性恢復性
  • 集羣模式(replicated mode)- 這種模式叫作「複製模式」;這個模式下,Zookeeper運行於一個集羣上,適合生產環境。
    同一個集羣下的server節點被稱爲_quorum_,翻譯過來就是「一個正式會議的法定人數」;在集羣模式下,最少須要三個server節點。而且官方推薦你使用奇數數量的server節點來組成集羣。至於爲何,和Zookeeper的讀寫策略和一致性協議有關。

2、Zookeeper搭建

單點模式

  1. 去官網下載對應源碼壓縮包,而後上傳到服務器
  2. 解壓,tar -zxvf zookeeper-***.tar.gz
  3. 進入到源碼目錄下的conf目錄,根據zoo_sample.cfg,建立一個配置文件zoo.cfg,啓動時默認就是按照zoo.cfg這個配置文件的信息來啓動服務器

    # Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,
    # 也就是每一個 tickTime 時間就會發送一個心跳。
    tickTime=2000 
    # Zookeeper 保存數據的目錄
    dataDir=/opt/zookeeper/data
    # Zookeeper 保存日誌文件的目錄
    dataLogDir=/opt/zookeeper/log
    # 客戶端鏈接Zookeeper 服務器的端口
    # Zookeeper 會監聽這個端口,接受客戶端的訪問請求
    clientPort=2181
  4. 修改環境變量測試

    vi ~/.bashrc  
    
    export ZOOKEEPER_HOME=/usr/local/zookeeper 
    export PATH=$PATH:$ZOOKEEPER_HOME/bin  
    
    source ~/.bashrc
  5. 進入到源碼目錄下的bin目錄,執行zkServer.sh腳本文件便可spa

    # 啓動
    zkServer.sh start
    # 關閉
    zkServer.sh stop
  6. 查看當前zookeeper 狀態翻譯

    [root@localhost bin]# sh zkServer.sh status 
    ZooKeeper JMX enabled by default
    Using config: /opt/zookeeper-3.4.8/bin/../conf/zoo.cfg
    Mode: standalone

Mode:standalone能夠看到如今的節點啓動類型:單點模式。日誌

集羣模式

集羣模式的搭建和單點模式的差異不大,若是按照官方的最低要求,就是三臺服務器,在這三臺服務器上面分別執行一下上述單點模式的步驟,同一集羣下的每臺服務器的配置文件相似。code

基於上述單點模式搭建,集羣模式的搭建,咱們須要作如下更改:

  1. 每臺機器上 conf/zoo.cfg 配置文件的參數設置,須要添加集羣的信息.

    tickTime=2000
    dataDir=/opt/zookeeper/data
    dataLogDir=/opt/zookeeper/log
    clientPort=2181
     # 集羣相關配置
    # 容許 follower 鏈接並同步到 leader 的初始化鏈接時間 
    # 好比這裏就是容許 5個 tick 的時間
    initLimit=5
    # leader 與 follower 之間發送消息,請求和應答時間長度。
    # 若是 follower 在設置的時間內不能與leader 進行通訊,那麼此 follower 將被丟棄。
    # 好比這裏就是容許 2個 tick 的時間
    syncLimit=2
    # 集羣信息
    server.1=centos1:2888:3888
    server.2=centos2:2888:3888
    server.3=centos3:2888:3888

    server.id=host:port1:port2標識了不一樣Zookeeper服務器的信息,其中 id 是一個數字,表示這個是服務器的編號;host是這個服務器的 ip 地址;至於port1port2參照官網的描述較爲準確.
    "2888"和"3888",Zookeeper 節點使用前面那個端口(port1)來與其餘節點創建鏈接。這個鏈接是必須創建的,由於不一樣節點之間須要通訊。打比方說,follower節點須要「同意」leader節點的更新命令。更確切一點說,這個節點是用於follower節點和leader節點之間的通訊。當一個leader節點出現了,follower節點會在port1上與leader節點創建一個TCP鏈接。由於默認的leader選舉也是用TCP,咱們如今就須要另外一個端口來用於leader選舉,這就是port2的做用。

    歸納來講,port1通訊端口,port2選舉端口。

  2. 在每一個Zookeeper服務器對應的dataDir目錄下須要建立一個名爲myid的文件,這個文件中僅含有一行的內容,指定的是自身的 id 值,就是server.id=host:port1:port2中的id值。這個 id 值必須是集羣中惟一的
  3. 確認每臺服務器上的zoo.cfgmyid文件修改建立以後,在三個節點上分別執行命令zkServer.sh start,啓動zookeeper server。
  4. 查看集羣狀態

    一、jps(查看進程:會出現:QuorumPeerMain ) 
    二、zkServer.sh status(查看集羣狀態,主從信息)

3、Zookeeper搭建詳細操做

1.zookeper包上傳

文件上傳:
上傳: scp localpath username@ip:remotepath
文件下載:
scp -r remote_username@remote_ip:remote_folder local_folder

scp /Users/xiexinming/software/package/zookeeper-3.4.9.tar.gz root@10.1.200.244:/usr/local/

2.zookeper解壓修更名稱

一、解壓

tar -zxvf zookeeper-3.4.9.tar.gz

二、刪除jar包,而後重命名

image.png

3.配置環境變量

vi ~/.bashrc  

export ZOOKEEPER_HOME=/usr/local/zookeeper 
export PATH=$PATH:$ZOOKEEPER_HOME/bin  

source ~/.bashrc

image.png

4.修改配置文件

拷貝一份已經存在的樣本文件,而後進行編輯
進入zookeeper的配置文件中:
cd ./zookeeper/conf
image.png

咱們在/opt下新建目錄:zookeeper
而後咱們修改zookeeper的配置文件。

mkdir /opt/zookeeper/data
mkdir /opt/zookeeper/log

修改裏面的基本配置文件:

dataDir=/opt/zookeeper/data
dataLogDir=/opt/zookeeper/log
server.1=centos01:2888:3888
server.2=centos02:2888:3888 

設置zookeeper的id
進入zookeeper的data目錄中去,設置他的id

cd /opt/zookeeper/data  
echo 1 > myid

image.png
上面myid裏面內容爲1,表明的是當前zookeeper機器編號。

5.其餘機器zookeeper配置

scp -r /usr/local/zookeeper centos02:/usr/local ,修改環境變量,在centos02將myid的內容改成2 (echo 2 > myid)

scp -r /usr/local/zookeeper centos03:/usr/local,修改環境變量,在centos03將myid的內容改成3 (echo 3 > myid)

在另外一臺機器查看:

image.png

修改環境變量:

vi ~/.bashrc  
export ZOOKEEPER_HOME=/usr/local/zookeeper 
export PATH=$PATH:$ZOOKEEPER_HOME/bin  
source ~/.bashrc

設置zookeeper的id
進入zookeeper的data目錄中去,設置他的id

cd /opt/zookeeper/data  
echo 2 > myid

6.zookeeper啓動

zookeeper是最基本基本的系統,全部能夠直接跑

二臺機器上執行:

一、啓動zookeeper:

zkServer.sh start

二、查看集羣狀態

一、jps(查看進程:會出現:QuorumPeerMain ) 
二、zkServer.sh status(查看集羣狀態,主從信息)

image.png

相關文章
相關標籤/搜索