1、zookeeper概念介紹:
zookeeper是乙個分部式協調服務:就是為使用者的分布式應用程式提供協調服務
a、zookeeper是為別的分布式程式服務的
b、zookeeper本身就是乙個分布式程式(只要有半數以上節點存活,zk就能正常服務)
c、zk所提供的的服務涵蓋:主從協調、伺服器節點動態上下線、統一配置管理、分布式共享鎖、統一名稱服務
d、雖然說可以提供各種服務,但是zk在底層其實只提供了兩個功能
管理:(管理、讀取)使用者程式提交的資料
並為使用者程式提供資料節點監聽服務
zk的應用場景
zk集群的角色:leader和follower(observer)
只要集群中有半數以上節點存活,集群就能提供服務
2、zookeeper集群機制
使用paxos演算法->簡化版zab自動投票機制(預設按ip大的進行投票)
安裝集群
3、安裝zookeeper
配置(先在一台節點上配置)
3.1、新增乙個zoo.cfg配置檔案
放在zookeeper/conf目錄下
mv zoo_sample.cfg zoo.cfg
3.2、修改配置檔案(zoo.cfg)
datadir=/***x/zookeeper-3.4.5/data
server.1=line-1:2888:3888
server.2=line-2:2888:3888
server.3=line-3:2888:3888
3.3、在(datadir=/home/hadoop/cluster/zookeeper-3.4.5/data)建立乙個myid檔案,
裡面內容是server.n中的n(server.2裡面內容為2)
echo 「1」 > myid
3.4、將配置好的zk拷貝到其他節點
scp -r zookeeper-3.4.5 hadoop@line-2:/home/hadoop/cluster/
scp -r zookeeper-3.4.5 hadoop@line-3:/home/hadoop/cluster/
3.5、注意:在其他節點上一定要修改myid的內容
在line-2應該講myid的內容改為2 (echo 「2」 > myid)
在line-3應該講myid的內容改為3 (echo 「3」 > myid)
4、啟動集群
分別啟動zk
./zkserver.sh start 伺服器
./zkserver.sh status 檢視狀態
./zkcli.sh 客戶端
5、zookeeper常用命令
linux環境
使用zkserver.sh指令碼,如下:
啟動zk服務: sh bin/zkserver.sh start
檢視zk服務狀態: sh bin/zkserver.sh status
停止zk服務: sh bin/zkserver.sh stop
重啟zk服務: sh bin/zkserver.sh restart
6、zookeeper客戶端命令
zkcli.sh -server 127.0.0.1:2181
連線成功後,系統會輸出 zookeeper 的相關環境以及配置資訊,如下:
我們可以使用 help命令來檢視幫助:
命令列工具的一些常用操作命令如下:
ls使用 ls 命令來檢視某個目錄包含的所有檔案,例如:
ls /
ls2
使用 ls2 命令來檢視某個目錄包含的所有檔案,與ls不同的是它檢視到time、version等資訊
ls2 /
create
建立znode,並設定初始內容,例如
create /test "hello"
建立乙個新的 znode節點「 test 」以及與它關聯的字串
get獲取znode的資料,如下:
get /test
set修改znode內容,例如:
set /test 「ricky」
1
delete
刪除znode
delete /test
quit
退出客戶端
help
幫助命令
報錯修改
1、error contacting service. it is probably not running.
list item
Zookeeper重點總結
zookeeper原子廣播協議,zookeeper使用zab協議,實現分布式資料一致性。具體的,zk使用乙個單一的主程序來接受並處理客戶端的事務請求,並使用zab協議,將資料的變更狀態以事務proposal的形式廣播到所有follower。leader 1,可以進行事務操作 寫操作 和非事務操作 讀...
Zookeeper重點總結
類似於一棵樹,每個znode預設能夠儲存1mb的資料 服務1啟動 首先選舉自己 服務2啟動,首先選舉自己,服務1轉投id比自己大的服務2 服務3啟動 首先選舉自己 服務1服務2轉投序號比較大的伺服器3,這時master選舉出來了 服務4啟動,這時已經選舉出來且過半不會觸發重新選舉 服務5啟動,同服務...
ZooKeeper技術內幕 Leader選舉
leader選舉的實現細節 每台伺服器啟動的時候,都會啟動乙個quorumcnxmanager,負責各台伺服器之間底層的leader選舉過程中的網路通訊。自增選舉輪次 在fastleaderelection實現中,有乙個logicalclock屬性,用於標識當前leader的選舉輪次,zookeep...