zookeeper中對使用者的資料採用kv形式儲存
只是zk有點特別:
key:是以路徑的形式表示的,那就以為著,各key之間有父子關係,比如
/ 是頂層key
使用者建的key只能在/ 下作為子節點,比如建乙個key: /aa 這個key可以帶value資料
也可以建乙個key: /bb
也可以建key: /aa/xx
zookeeper中,對每乙個資料key,稱作乙個znode
綜上所述,zk中的資料儲存形式如下:
zookeeper中的znode有多種型別:
persistent 持久的:建立者就算跟集群斷開聯絡,該類節點也會持久存在與zk集群中
ephemeral 短暫的:建立者一旦跟集群斷開聯絡,zk就會將這個節點刪除
組合型別:
persistent :持久不帶序號
ephemeral :短暫不帶序號
persistent 且 sequential :持久且帶序號
ephemeral 且 sequential :短暫且帶序號
上傳安裝包到集群伺服器解壓修改配置檔案
進入zookeeper的安裝目錄的conf目錄
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
# the number of milliseconds of each tick
ticktime=2000
initlimit=10
synclimit=5
datadir=/root/zkdata
clientport=2181
#autopurge.purgeinterval=1
server.1=hdp20-01:2888:3888
server.2=hdp20-02:2888:3888
server.3=hdp20-03:2888:3888
對3臺節點,都建立目錄 mkdir /root/zkdata
對3臺節點,在工作目錄中生成
myid
檔案,但內容要分別為各自的id: 1,2,3
hdp20-01上: echo 1 > /root/zkdata/myid
hdp20-02上: echo 2 > /root/zkdata/myid
hdp20-03上: echo 3 > /root/zkdata/myid
4,從hdp20-01上scp安裝目錄到其他兩個節點
scp -r zookeeper-3.4.6/ hdp20-02$pwd
scp -r zookeeper-3.4.6/ hdp20-03:$pwd
5 啟動zookeeper集群
zookeeper沒有提供自動批量啟動指令碼,需要手動一台一台地起zookeeper程序
在每一台節點上,執行命令:
bin/zkserver.sh start啟動後,用jps應該能看到乙個程序:quorumpeermain但是,光有程序不代表zk已經正常服務,需要用命令檢查狀態:
bin/zkserver.sh status能看到角色模式:為leader或follower,即正常了。
分布式5 zookeeper分布式
一 為什麼需要zookeeper 大部分分布式應用需要乙個主控 協調器或控制器來管理物理分布的子程序 如資源 任務分配等 大部分應用需要開發私有的協調程式,缺乏乙個通用的機制 協調程式的反覆編寫浪費,且難以形成通用 伸縮性好的協調器 zookeeper可以提供通用的分布式鎖服務,用以協調分布式應用,...
zookeeper分布式鎖
方案1 演算法思路 利用名稱唯一性,加鎖操作時,只需要所有客戶端一起建立 test lock節點,只有乙個建立成功,成功者獲得鎖。解鎖時,只需刪除 test lock節點,其餘客戶端再次進入競爭建立節點,直到所有客戶端都獲得鎖。特點 這種方案的正確性和可靠性是zookeeper機制保證的,實現簡單。...
zookeeper偽分布式
wget解壓 tar zxvf zookeeper 3.4.5 cdh5.9.3.tar.gz c opt 進入 opt 目錄修改檔名 mv zookeeper 3.4.5 cdh5.9.3 zookeeper01進入 opt zookeeper01 conf目錄設定配置檔案 cp zoo samp...