zookeeper的搭建以及集羣搭建是很是簡單的、咱們在工做中經常使用的就是單點模式跟集羣模式。html
本篇的內容爲:apache
官網zookeeper搭建參考:https://zookeeper.apache.org/...centos
Zookeeper單點模式和集羣模式。bash
tar -zxvf zookeeper-***.tar.gz
進入到源碼目錄下的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
修改環境變量測試
vi ~/.bashrc export ZOOKEEPER_HOME=/usr/local/zookeeper export PATH=$PATH:$ZOOKEEPER_HOME/bin source ~/.bashrc
進入到源碼目錄下的bin目錄,執行zkServer.sh
腳本文件便可spa
# 啓動 zkServer.sh start # 關閉 zkServer.sh stop
查看當前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
基於上述單點模式搭建,集羣模式的搭建,咱們須要作如下更改:
每臺機器上 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 地址;至於port1
和port2
參照官網的描述較爲準確.
"2888"和"3888",Zookeeper 節點使用前面那個端口(port1
)來與其餘節點創建鏈接。這個鏈接是必須創建的,由於不一樣節點之間須要通訊。打比方說,follower
節點須要「同意」leader
節點的更新命令。更確切一點說,這個節點是用於follower
節點和leader
節點之間的通訊。當一個leader
節點出現了,follower
節點會在port1
上與leader
節點創建一個TCP
鏈接。由於默認的leader
選舉也是用TCP
,咱們如今就須要另外一個端口來用於leader
選舉,這就是port2
的做用。
歸納來講,port1
通訊端口,port2
選舉端口。
dataDir
目錄下須要建立一個名爲myid
的文件,這個文件中僅含有一行的內容,指定的是自身的 id 值,就是server.id=host:port1:port2
中的id
值。這個 id
值必須是集羣中惟一的。zoo.cfg
和myid
文件修改建立以後,在三個節點上分別執行命令zkServer.sh start
,啓動zookeeper server。查看集羣狀態
一、jps(查看進程:會出現:QuorumPeerMain ) 二、zkServer.sh status(查看集羣狀態,主從信息)
文件上傳:
上傳: 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/
一、解壓
tar -zxvf zookeeper-3.4.9.tar.gz
二、刪除jar包,而後重命名
vi ~/.bashrc export ZOOKEEPER_HOME=/usr/local/zookeeper export PATH=$PATH:$ZOOKEEPER_HOME/bin source ~/.bashrc
拷貝一份已經存在的樣本文件,而後進行編輯
進入zookeeper的配置文件中:
cd ./zookeeper/conf
咱們在/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
上面myid裏面內容爲1,表明的是當前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)
在另外一臺機器查看:
修改環境變量:
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
zookeeper是最基本基本的系統,全部能夠直接跑
二臺機器上執行:
一、啓動zookeeper:
zkServer.sh start
二、查看集羣狀態
一、jps(查看進程:會出現:QuorumPeerMain ) 二、zkServer.sh status(查看集羣狀態,主從信息)