-----------zookeeper 配置文件
clientPort ---服務的監聽端口
dataDir ---用於存放內存數據庫快照的文件夾,同時用於集群的myid文件也存在這個文件夾里 (注意:一個配置文件只能包含一個dataDir字樣,即使它被注釋掉了。 )
tickTime ---心跳時間,為了確保連接存在的,以毫秒為單位,最小超時時間為兩個心跳時間
--高級配置參數
dataLogDir ---用於單獨設置transaction log的目錄,transaction log分離可以避免和普通log還有快照的競爭
globalOutstandingLimit --client請求隊列的最大長度,防止內存溢出,默認值為1000
preAllocSize ---預分配的Transaction log空間為block個proAllocSize KB,默認block為64M,一般不需要更改,除非snapshot過於頻繁
snapCount ---在snapCount個snapshot后寫一次transaction log,默認值是100,000
traceFile ---用於記錄請求的log,打開會影響性能,用於debug的,最好不要定義
maxClientCnxns ----最大並發客戶端數,用於防止DOS的,默認值是10,設置為0是不加限制
clientPortBindAddress ---3.3.0后新增參數,可是設置指定的client ip以及端口,不設置的話等於ANY:clientPort
minSessionTimeout ---3.3.0后新增參數,最小的客戶端session超時時間,默認值為2個tickTime,單位是毫秒
maxSessionTimeout ---3.3.0后新增參數,最大的客戶端session超時時間,默認值為20個tickTime,單位是毫秒
--集群參數
electionAlg ---用於選舉的實現的參數,0為以原始的基於UDP的方式協作,1為不進行用戶驗證的基於UDP的快速選舉,2為進行用戶驗證的基於UDP的快速選舉,3為基於TCP的快速選舉,默認值為3
initLimit ---多少個心跳時間內,允許其他server連接並初始化數據,如果ZooKeeper管理的數據較大,則應相應增大這個值
leaderServes ---leader是否接受客戶端連接。默認值為yes。 leader負責協調更新。當更新吞吐量遠高於讀取吞吐量時,可以設置為不接受客戶端連接,以便leader可以專注於同步協調工作。默認值是yes,說明leader可以接受客戶端連接。(注意:當集群中有超過3台ZooKeeper Server時,強烈建議打開leader選舉 )
server.x=[hostname]:nnnnn[:nnnnn], etc ---配置集群里面的主機信息,其中server.x的x要寫在myid文件中,決定當前機器的id,第一個port用於連接leader,第二個用於leader選舉。如果electionAlg為0,則不需要第二個port。hostname也可以填ip。
syncLimit ---多少個tickTime內,允許follower同步,如果follower落后太多,則會被丟棄。
group.x=nnnnn[:nnnnn] ---
weight.x=nnnnn ---
這兩個是用於集群分組的參數,暫時只有3台機器,沒仔細研究,先給個例子看看吧
group.1=1:2:3 group.2=4:5:6 group.3=7:8:9 ? weight.1=1 weight.2=1 weight.3=1 weight.4=1 weight.5=1 weight.6=1 weight.7=1 weight.8=1 weight.9=1
第二部分 zookeeper 驗證
輸入jps命令查看進程
QuorumPeerMain是zookeeper進程,啟動正常。(HMaster和HRegionServer為已啟動的hbase進程,
./bin/zkServer.sh start --zookeeper 項目啟動
./bin/zkServer.sh stop ---停止服務的命令
./bin/zkServer.sh status --zookeeper 狀態查看
./bin/zkCli.sh -server localhost:2181 --服務運行起來之后,就可以用客戶端連接服務端了
