zookeeper簡介&單機版安裝

 

●  zookeeper概述

ZooKeeper::分佈式協調工具,提供的功能包括:配置維護、域名服務、分佈式同步、組服務等。

 

●  zookeeper特點

 

●  zookeeper數據結構

 

●  zookeeper的應用場景

提供的服務包括:統一命名服務、統一配置管理、統一集羣管理、服務器節點動態上下線、軟負載均衡等

 

統一命名服務

 

 統一配置管理

統一集羣管理

服務器動態上下線

軟負載均衡

●  zookeeper下載

---- 

----

----

 ----

----

 

●  zookeeper安裝

一:上傳到/usr/local/soft/目錄下、解壓、重命名

# tar -zxvf zookeeper-3.4.14.tar.gz    --解壓
# mv zookeeper-3.4.14 zookeeper        --重命名

二:新建ZK的數據目錄和日誌目錄

# cd zookeeper                   --進入ZK目錄
# mkdir data                     --新建數據目錄
# mkdir log                      --新建日誌目錄

三:修改ZK配置文件

# cd conf/                              --進入配置文件目錄
# cp zoo_sample.cfg zoo.cfg             --複製一份,ZK默認加載的配置文件名:zoo.cfg
# vim zoo.cfg                           --編輯配置文件

 dataDIr、clientPort配置文件中已經指定,修改即可,dataLogDir需要添加列

dataDir=/usr/local/soft/zookeeper/data
dataLogDir=/usr/local/soft/zookeeper/log
clientPort=2181

 

●   zookeeper啓動、連接

一:啓動

# cd bin                            --進入bin目錄
# ./zkServer.sh start               --啓動zookeeper

 ./zkServer.sh { start | start-foreground | stop | restart | status | upgrade }      --其他用法

二:查看狀態

# ./zkServer.sh status  或者  jps

三:連接

./zkCli.sh -server 127.0.0.1:2181          --連接服務,指定ip、端口

 

●   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:客戶端連接端口

監聽客戶端連接的端口

 

●   zookeeper命令詳解

help命令

help命令用於查詢客服端所支持的所用的命令,執行help,輸入如下:

[zk: 127.0.0.1:2181(CONNECTED) 2] help
ZooKeeper -server host:port cmd args
	stat path [watch]
	set path data [version]
	ls path [watch]
	delquota [-n|-b] path
	ls2 path [watch]
	setAcl path acl
	setquota -n|-b val path
	history 
	redo cmdno
	printwatches on|off
	delete path [version]
	sync path
	listquota path
	rmr path
	get path [watch]
	create [-s] [-e] path data acl
	addauth scheme auth
	quit 
	getAcl path
	close 
	connect host:port

ls命令

  ls命令用於獲取路徑下的節點信息,注意路徑爲絕對路徑,如:ls /

ls2命令

  ls2命令是ls命令的增強版,比ls命令多輸出本節點信息

 

create命令        create [-s] [-e] path data acl

  create命令用於創建節點,其中-s爲順序節點,-e臨時節點

create /node1 'i am a node1'

delete命令

  delete命令用於刪除節點,如delete /nodeDelete

 

get命令

  get命令用於獲取節點的信息,注意節點的路徑必須是以/開頭的絕對路徑。如get /node1

 

set命令

  set命令用於設置節點的數據,如:set /node1 "i am 1"

 

addauth命令

  addauth命令用於節點認證,使用方式:如addauth digest username:password

 

setAcl命令

  setAcl命令用於設置節點Acl

  Acl由三部分構成:1爲scheme,2爲user,3爲permission,一般情況下表示爲scheme:id:permissions

 

getAcl命令

  獲取節點的Acl,如getAcl /node1

world: 它下面只有一個id, 叫anyone, world:anyone代表任何人,zookeeper中對所有人有權限的結點就是屬於world:anyone的

auth: 它不需要id, 只要是通過authentication的user都有權限(zookeeper支持通過kerberos來進行authencation, 也支持username/password形式的authentication)

digest: 它對應的id爲username:BASE64(SHA1(password)),它需要先通過username:password形式的authentication

ip: 它對應的id爲客戶機的IP地址,設置的時候可以設置一個ip段,比如ip:192.168.1.0/16, 表示匹配前16個bit的IP段

super: 在這種scheme情況下,對應的id擁有超級權限,可以做任何事情(cdrwa)

permissions
CREATE(c): 創建權限,可以在在當前node下創建child node

DELETE(d): 刪除權限,可以刪除當前的node

READ(r): 讀權限,可以獲取當前node的數據,可以list當前node所有的child nodes

WRITE(w): 寫權限,可以向當前node寫數據

ADMIN(a): 管理權限,可以設置當前node的permission

 

stat命令

stat命令用於查看節點的狀態信息,如stat /

 

history命令

  history用於列出最近的命令歷史,可以和redo配合使用。如history  

 

redo命令

  redo命令用於再次執行某個命令,使用方式爲redo cmdid 如 redo 20

  常與history配合使用

 

connect命令     

  連接zk服務端,與close命令配合使用可以連接或者斷開zk服務端

connect 127.0.0.1:2181

close命令

  close命令用於關閉與服務端的鏈接

 

quit命令

  退出客戶端

 

listquota命令

  listquota命令用於顯示配額,如listquota /storm

absolute path is /zookeeper/quota/storm/zookeeper_limits
quota for /storm does not exist.

setquota命令

  setquota命令用於設置節點個數以及數據長度的配額,如:

1

2

setquota –n 4 /zookeeper/node 設置/zookeeper/node子節點個數最大爲4

setquota –b 100 /zookeeper/node 設置/zookeeper/node節點長度最大爲100

 delquota命令

  delquota命令用於刪除配額,-n爲子節點個數,-b爲節點數據長度,如:delquota –n 2

 

sync命令

  sync命令用於強制同步,由於請求在半數以上的zk server上生效就表示此請求生效,那麼就會有一些zk server上的數據是舊的。sync命令就是強制同步所有的更新操作。

 

printwatchers命令

  printWatchers命令用於設置和顯示監視狀態,值爲on或則off

 

下一篇:搭建zookeeper集羣:https://blog.csdn.net/qq_37936542/article/details/107096985

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