Zookeeper自探(二)—Zookeeper安裝


Zookeeper自探

自己的話:每天都要保持前進,我勢必要有強勁的實力再跟全新的自己問好。
多認識更加優秀的人,你會討厭現在的自己。

Zookeeper安裝及配置


一、分佈式安裝部署

1.集羣規劃

在 hadoop1、hadoop2 和 hadoop3 三個節點上部署 Zookeeper

2.安裝前準備

(1)安裝 Jdk
(2)拷貝 Zookeeper 安裝包到 Linux 系統下
(3)解壓到指定目錄
[hadoop1 software]$ tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/

3.配置服務器編號

(1)在/opt/module/zookeeper-3.4.10/這個目錄下創建 zkData
[hadoop1 zookeeper-3.4.10]$ mkdir  zkData

在這裏插入圖片描述

(2)在/opt/module/zookeeper-3.4.10/zkData 目錄下創建一個 myid 的文件
[hadoop1 zkData]$ touch myid

添加 myid 文件,注意一定要在 linux 裏面創建,在 notepad++裏面很可能亂碼
在這裏插入圖片描述

(3)編輯 myid 文件
[hadoop1 zkData]$ vi myid

在文件中添加與 server 對應的編號:

1

4.配置 zoo.cfg 文件

(1)重命名/opt/module/zookeeper-3.4.10/conf 這個目錄下的 zoo_sample.cfg 爲 zoo.cfg

[atguigu@hadoop102 conf]$ mv zoo_sample.cfg zoo.cfg

(2)打開 zoo.cfg 文件
[hadoop102 conf]$ vim zoo.cfg

修改數據存儲路徑配置

dataDir=/opt/module/zookeeper-3.4.10/zkData

打開倒數第一、第三行autopurge的註釋

增加如下配置:

#######################cluster##########################
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888

在這裏插入圖片描述

(3)拷貝配置好的 zookeeper 到其他機器上
[hadoop1 module]# scp -r zookeeper-3.4.14/ hadoop2:$PWD

[hadoop1 module]# scp -r zookeeper-3.4.14/ hadoop3:$PWD

並分別在 hadoop2、hadoop3 上修改 myid 文件中內容爲2、3

5.集羣操作

(1)分別啓動 Zookeeper
[hadoop1 zookeeper-3.4.10]$ bin/zkServer.sh start
[hadoop2 zookeeper-3.4.10]$ bin/zkServer.sh start
[hadoop3 zookeeper-3.4.10]$ bin/zkServer.sh start
(2)查看狀態
[hadoop1 zookeeper-3.4.10]$ bin/zkServer.sh status

JMX enabled by default
Using config: /opt/module/zookeeper-
3.4.10/bin/../conf/zoo.cfg
Mode: follower

[hadoop2 zookeeper-3.4.10]$ bin/zkServer.sh status

JMX enabled by default
Using config: /opt/module/zookeeper-
3.4.10/bin/../conf/zoo.cfg
Mode: leader

[hadoop3 zookeeper-3.4.5]$ bin/zkServer.sh status

JMX enabled by default
Using config: /opt/module/zookeeper-
3.4.10/bin/../conf/zoo.cfg
Mode: follower

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述


二、配置參數解讀

Zookeeper中的配置文件zoo.cfg中參數含義解讀如下:

1. tickTime =2000:通信心跳數Zookeeper 服務器與客戶端心跳時間,單位毫秒

Zookeeper使用的基本時間,服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個tickTime時間就會發送一個心跳,時間單位爲毫秒。

它用於心跳機制,並且設置最小的session超時時間爲兩倍心跳時間。(session的最小超
時時間是2*tickTime)

2. initLimit =10:LF 初始通信時限

集羣中的Follower跟隨者服務器與Leader領導者服務器之間初始連接時能容忍的最多心跳數(tickTime的數量),用它來限定集羣中的Zookeeper服務器連接到Leader的時限。

3. syncLimit =5:LF 同步通信時限

集羣中Leader與Follower之間的最大響應時間單位,假如響應超過syncLimit * tickTime,Leader認爲Follwer死掉,從服務器列表中刪除Follwer。

4. dataDir:數據文件目錄+數據持久化路徑

主要用於保存 Zookeeper 中的數據。

5. clientPort =2181:客戶端連接端口

監聽客戶端連接的端口。

6. server.A=B:C:D

  • A 是一個數字,表示這個是第幾號服務器;
    集羣模式下配置一個文件 myid,這個文件在 dataDir 目錄下,這個文件裏面有一個數據就是 A 的值,Zookeeper 啓動時讀取此文件,拿到裏面的數據與 zoo.cfg 裏面的配置信息比較從而判斷到底是哪個server。
  • B 是這個服務器的地址;
  • C 是這個服務器 Follower 與集羣中的 Leader 服務器交換信息的端口;
  • D 是萬一集羣中的 Leader 服務器掛了,需要一個端口來重新進行選舉,選出一個新的Leader,而這個端口就是用來執行選舉時服務器相互通信的端口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章