zookeeper技術總結

2021-09-11 15:56:34 字數 2442 閱讀 1246

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...