Kudu
Kudu是一個分布式的,具有可擴展性的列式存儲管理器,可以對快速變化的數據進行快速分析。
使用場景
典型的應用場景如下:
近實時計算場景
時間序列數據的場景
預測建模
與存量數據共存
通常生產環境中會有大量的存量數據,數據可能存儲在HDFS、RDBMS或Kudu中。如果您只是想訪問和查詢這些存量數據,可以使用Impala訪問和查詢,而無需遷移存量數據至Kudu。
組件
Kudu包含如下兩種類型的組件:
Master Server:負責管理元數據,其中包括Tablet Server的服務器信息和Tablet的信息。Master Server通過Raft協議實現高可用性。
Tablet Server:用來存儲Tablets,每個Tablet存在多個副本,副本之間通過Raft協議提供高可用性。
基本概念
名稱 | 描述 |
Master服務 | 主要負責管理整個集群的元數據。元數據包括TabletServer信息、表的信息、Tablet的信息以及其他相關元數據相關的信息。 |
Tserver服務 | 負責為客戶端儲存和提供Tablets,僅Leader Tablet可以寫入請求,其他的Tablet只能執行請求。 |
列式存儲 | Kudu是一種列數據儲存結構,同一列的數據被存儲在底層存儲的相鄰位置。 |
表(Table) | 數據存儲在Kudu的位置。Table有Schema和全局有序的Primary Key屬性,且可以劃分為多個Tablet。 |
分片(Tablet) | 一個表可以被分到若干個分片中,稱為Tablet。 一個Tablet是指表上一段連續的Segment。一個特定的Tablet會被復制到多個Tablet服務器上,其中一個會被認為是Leader Tablet。每一個備份Tablet都可以支持讀取和寫入請求。 |
Raft | 一致性協議,可以保證Kudu Master服務的高可用以及Tablet多副本之間數據一致性。 |
Catalog Table | Kudu的MetaData的中心位置,存儲Table和Tablet的信息。 |