標籤:

region HFile DataNode 三者的區別與關係?


這三個術語分別屬於Hadoop家族中的HBase和HDFS,DateNode是HDFS的,HFile和region是HBase的,HBase是採用HDFS作為存儲。

Data Node

Data Node是指HDFS集群中負責存儲數據的伺服器,與此相對的是Naming Node,參見:

(圖片來源: HDFS Architecture Guide)

Region

Region是表按照RowKey範圍劃分的不同的部分,相當於DBMS中的分區。同時Region也是表在集群中分布的最小單位,可以被分配到某一個Region Server上。

(圖片來源:Transcript of HBase for Architects Presentation)

Region中又按照Column Famliy分為不同的Store,每個Store由MemStore和StoreFile組成。

(圖片來源:Transcript of HBase for Architects Presentation)

HFile

如上圖所示,一個StoreFile對應著一個HFile。而HFile是存儲在HDFS之上的。HFile文件格式是基於Google Bigtable中的SSTable,如下圖所示:

(圖片來源:Lineland: HBase Architecture 101)整體上看

下面這張圖中把DataNode,Region(HRegion)和HFile以及它們之間的關係都表示出來了。

(圖片來源:Lineland: HBase Architecture 101)


region存在region server中,其存儲格式為hfile!

而hfile又分散存儲在hdfs上保證高可用


Region是HBase的表分區,是數據分片的概念。HBase中表有多個region分區組成。region由一組rowkey有序的行組成。

HFile是HBase數據文件格式,HBase中數據持久化到HFile中,HFile是不可變,內部有序的。

DataNone是HDFS的存儲節點,用於存儲數據和H處理文件讀寫的RPC請求!


1 StoreFile是HDFS上的一個文件的概念

2 HFile也是HDFS上的一個文件的概念

3 @用心閣,圖片中對StoreFile,HFile的表達似乎不對,還是我理解錯了?


推薦閱讀:

hbase 基於rowkey 模糊查詢 如何做效率高?
mongodb,redis,hbase 三者都是nosql資料庫,他們的最大區別和不同定位是什麼?
為什麼說HBase是列式資料庫?
HBase讀性能怎麼樣?
從百萬級別數據的分析角度,Mysql,Mongodb,Hbase如何選擇?

TAG:HBase |