溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

zookeeper的操作與應(yīng)用場景是什么

發(fā)布時(shí)間:2022-01-04 16:22:57 來源:億速云 閱讀:136 作者:柒染 欄目:大數(shù)據(jù)

本篇文章為大家展示了zookeeper的操作與應(yīng)用場景是什么,內(nèi)容簡明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。


zookeeper的操作與應(yīng)用場景是什么Zookeeper作為一個(gè)分布式協(xié)調(diào)系統(tǒng)提供了一項(xiàng)基本服務(wù):分布式鎖服務(wù),分布式鎖是分布式協(xié)調(diào)技術(shù)實(shí)現(xiàn)的核心內(nèi)容。像配置管理、任務(wù)分發(fā)、組服務(wù)、分布式消息隊(duì)列、分布式通知/協(xié)調(diào)等,這些應(yīng)用實(shí)際上都是基于這項(xiàng)基礎(chǔ)服務(wù)由用戶自己摸索出來的。

1.Zookeeper在大數(shù)據(jù)系統(tǒng)中的常見應(yīng)用

zookeeper作為分布式協(xié)調(diào)系統(tǒng)在大數(shù)據(jù)領(lǐng)域非常常用,它是一個(gè)很好的中心化管理工具。下面舉幾個(gè)常見的應(yīng)用場景。

1.1.HDFS/YARN

  • HA機(jī)制(分布式鎖的應(yīng)用):Master掛掉之后迅速切換到slave節(jié)點(diǎn)。

1.2.hbase

  • HA機(jī)制 :類似HDFS/YARN。

  • 配置管理 :client需要讀寫hbase的數(shù)據(jù)首先都是連到ZK讀取root表,獲得meta表所在的region,最后找到數(shù)據(jù)所在位置。

  • 任務(wù)發(fā)布:regionserver掛了一臺(tái),master需要重新分配region,會(huì)把任務(wù)放在zookeeper等regionserver來獲取

1.3.kafka

  • 配置管理:broker會(huì)在zookeeper注冊(cè)并保持相關(guān)的元數(shù)據(jù)(topic,partition信息等)更新

  • 任務(wù)分配:給topic分配partitions和replication

2.Zookeeper有哪些操作特性

2.1.數(shù)據(jù)結(jié)構(gòu)

zookeeper的操作與應(yīng)用場景是什么

ZooKeeper命名空間中的Znode,兼具文件和目錄兩種特點(diǎn)。既像文件一樣維護(hù)著數(shù)據(jù)、元信息、ACL、時(shí)間戳等數(shù)據(jù)結(jié)構(gòu),又像目錄一樣可以作為路徑標(biāo)識(shí)的一部分。 每個(gè)Znode由3部分組成:

  • stat狀態(tài)信息:描述該Znode的版本, 權(quán)限等信息

  • data:與該Znode關(guān)聯(lián)的數(shù)據(jù)(配置文件信息、狀態(tài)信息、匯集位置),數(shù)據(jù)大小至多1M

  • children:該Znode下的子節(jié)點(diǎn)

ZooKeeper中的每個(gè)節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)要被原子性的操作。也就是說讀操作將獲取與節(jié)點(diǎn)相關(guān)的所有數(shù)據(jù),寫操作也將替換掉節(jié)點(diǎn)的所有數(shù)據(jù)。另外,每一個(gè)節(jié)點(diǎn)都擁有自己的ACL(訪問控制列表),這個(gè)列表規(guī)定了用戶的權(quán)限,即限定了特定用戶對(duì)目標(biāo)節(jié)點(diǎn)可以執(zhí)行的操作。

2.2.watch機(jī)制

ZooKeeper可以為所有的讀操作設(shè)置watch,包括:exists()、getChildren()及getData()。當(dāng)節(jié)點(diǎn)狀態(tài)發(fā)生改變時(shí)(Znode的增、刪、改)將會(huì)觸發(fā)watch所對(duì)應(yīng)的操作。當(dāng)watch被觸發(fā)時(shí),ZooKeeper將會(huì)向客戶端發(fā)送且僅發(fā)送一條通知,因?yàn)閣atch只能被觸發(fā)一次,這樣可以減少網(wǎng)絡(luò)流量。

  • 數(shù)據(jù)watch(data watches):getData和exists負(fù)責(zé)設(shè)置數(shù)據(jù)watch

  • 孩子watch(child watches):getChildren負(fù)責(zé)設(shè)置孩子watch

2.3.節(jié)點(diǎn)類型

ZooKeeper中的節(jié)點(diǎn)有兩種,分別為臨時(shí)節(jié)點(diǎn)和永久節(jié)點(diǎn)(還可再分為有序無序)。節(jié)點(diǎn)的類型在創(chuàng)建時(shí)即被確定,并且不能改變。

  • 臨時(shí)節(jié)點(diǎn):該節(jié)點(diǎn)的生命周期依賴于創(chuàng)建它們的會(huì)話。一旦會(huì)話(Session)結(jié)束,臨時(shí)節(jié)點(diǎn)將被自動(dòng)刪除,當(dāng)然可以也可以手動(dòng)刪除。雖然每個(gè)臨時(shí)的Znode都會(huì)綁定到一個(gè)客戶端會(huì)話,但他們對(duì)所有的客戶端還是可見的。另外,ZooKeeper的臨時(shí)節(jié)點(diǎn)不允許擁有子節(jié)點(diǎn)。(分布式隊(duì)列)

  • 永久節(jié)點(diǎn):該節(jié)點(diǎn)的生命周期不依賴于會(huì)話,并且只有在客戶端顯示執(zhí)行刪除操作的時(shí)候,他們才能被刪除。

3.這些應(yīng)用是如何通過這些特性實(shí)現(xiàn)的

3.1.HA機(jī)制:

兩種方式:

  • 創(chuàng)建兩個(gè)或多個(gè)有序臨時(shí)節(jié)點(diǎn),永遠(yuǎn)把最小值當(dāng)做master

  • 創(chuàng)建臨時(shí)節(jié)點(diǎn)的為master,多個(gè)slave會(huì)watch這個(gè)節(jié)點(diǎn)

3.2.配置管理:

存儲(chǔ)集群元數(shù)據(jù)提供給client使用,體現(xiàn)在比如需要對(duì)HBase和Kafka操作時(shí),都會(huì)直接連到zookeeper,zookeeper記錄了數(shù)據(jù)存儲(chǔ)的位置,存活的節(jié)點(diǎn)等元數(shù)據(jù)信息。

3.3.任務(wù)發(fā)布:

Master要監(jiān)視/works和/tasks兩個(gè)永久節(jié)點(diǎn),以便能感知到由哪些slave當(dāng)前可用,當(dāng)前有新任務(wù)需要分配。 分配過程:在/assign下創(chuàng)建當(dāng)前可用的workA,找到需要分配的taskA,創(chuàng)建/assign/workA/taskA

zookeeper還有很多類似的應(yīng)用大多都是基于上面的特性??偟膩碚f,zk只是一個(gè)提供了一些特性的系統(tǒng),用戶根據(jù)這些特性自己定義了它的用法。

上述內(nèi)容就是zookeeper的操作與應(yīng)用場景是什么,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI