ZooKeeper參數調優


zookeeper的默認配置文件為zookeeper/conf/zoo_sample.cfg,需要將其修改為zoo.cfg。其中各配置項的含義,解釋如下:

1.tickTime:Client-Server通信心跳時間
Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發送一個心跳。tickTime以毫秒為單位。
tickTime=2000

2.initLimit:Leader-Follower初始通信時限
集群中的follower服務器(F)與leader服務器(L)之間初始連接時能容忍的最多心跳數(tickTime的數量)。
initLimit=5

3.syncLimit:Leader-Follower同步通信時限
集群中的follower服務器與leader服務器之間請求和應答之間能容忍的最多心跳數(tickTime的數量)。
syncLimit=2

4.dataDir:數據文件目錄
Zookeeper保存數據的目錄,默認情況下,Zookeeper將寫數據的日志文件也保存在這個目錄里。
dataDir=/home/michael/opt/zookeeper/data

5.clientPort:客戶端連接端口
客戶端連接 Zookeeper 服務器的端口,Zookeeper 會監聽這個端口,接受客戶端的訪問請求。
clientPort=2181

6.服務器名稱與地址:集群信息(服務器編號,服務器地址,LF通信端口,選舉端口)
這個配置項的書寫格式比較特殊,規則如下:
server.N=YYY:A:B

server.1=itcast05:2888:3888
server.2=itcast06:2888:3888
server.3=itcast07:2888:3888

7.ZK為什么設置為奇數個?
zookeeper有這樣一個特性:集群中只要有過半的機器是正常工作的,那么整個集群對外就是可用的。也就是說如果有2個zookeeper,那么只要有1個死了zookeeper就不能用了,因為1沒有過半,所以2個zookeeper的死亡容忍度為0;同理,要是有3個zookeeper,一個死了,還剩下2個正常的,過半了,所以3個zookeeper的容忍度為1;同理你多列舉幾個:2 -> 0; 3 -> 1; 4 - >1; 5 -> 2; 6 -> 2會發現一個規律,2n和2n-1的容忍度是一樣的,都是n-1,所以為了更加高效,何必增加那一個不必要的zookeeper呢。

8.ZK集群安裝

1.上傳zk安裝包

2.解壓

3.配置(先在一台節點上配置)
    3.1將文件/conf/zoo_sample.cfg改為/conf/zoo.cfg
        mv zoo_sample.cfg zoo.cfg
    
    3.2修改配置文件(zoo.cfg)
        dataDir=/hadoop/zookeeper-3.4.5/tmp
        
        server.1=hadoop04:2888:3888
        server.2=hadoop05:2888:3888
        server.3=hadoop06:2888:3888
    
    3.3在(dataDir=/hadoop/zookeeper-3.4.5/tmp)創建一個myid文件,里面內容是server.N中的N(server.2里面內容為2)
        echo "1" > myid
    
    3.4將配置好的zk拷貝到其他節點 
        scp -r /hadoop/zookeeper-3.4.5/ hadoop05:/hadoop/
        scp -r /hadoop/zookeeper-3.4.5/ hadoop06:/hadoop/
    
    3.5注意:在其他節點上一定要修改myid的內容
        在hadoop05應該講myid的內容改為2 (echo "2" > myid)
        在hadoop06應該講myid的內容改為3 (echo "3" > myid)
        
4.啟動集群
    分別啟動zk
        ./zkServer.sh start

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM