靚麗時尚館

位置:首頁 > 健康生活 > 心理

kudu架構介紹

心理1.17W
kudu架構介紹

kudu架構是用於存儲結構化的表。

表有預定義的帶類型的列,每張表有一個主鍵。

主鍵帶有唯一性限制,可作爲索引用來支援快速的 random access 。

類似於 BigTable , Kudu 的表是由很多數據子集構成的,表被水平拆分成多個 Tablets(片)。

Kudu 用以每個 tablet 爲一個單元來實現數據的 durability (持久化)。

Tablet(片) 有多個副本,同時在多個節點上進行持久化。

Kudu 有兩種類型的組件, Master Server 和 Tablet Server 。

(1)Master Server 負責管理元數據。這些元數據包括 talbet 的基本資訊,位置資訊。

Master 還作爲負載均衡服務器,監聽 Tablet Server 的健康狀態。

對於副本數過低的 Tablet , Master 會在起replication 任務來提高其副本數。

Master 的所有資訊都在內存中 cache ,因此速度非常快。每次查詢都在百毫秒級別。 

Kudu 支援多個 Master ,不過只有一個 active Master ,其餘只是作爲災備,不提供服務。

(2) Tablet Server 上存了 10~100 個 Tablets ,每個 Tablet 有 3 (或 5 )個副本存放在不同的 Tablet Server 上,每個 Tablet 同時只有一個 leader 副本,這個副本對用戶提供修改操作,然後將修改結果同步給 follower 。

Follower 只提供讀服務,不提供修改服務。

副本之間使用 raft 協議來實現 High Availability ,當 leader 所在的節點發生故障時, followers 會重新選舉 leader 。根據官方的數據,其 MTTR 約爲 5 秒,對 client 端幾乎沒有影響。

Raft 協議的另一個作用是實現 Consistency 。

Client 對 leader 的修改操作,需要同步到 N/2+1 個節點上,該操作纔算成功。

標籤:kudu 架構