1. 程式人生 > >HBase面試相關的問題

HBase面試相關的問題

一、HBase為什麼查詢快? (定址機制)

    根據rowkey查詢時, 首先根據 region server 判斷出該 rowkey 在不在這個regionserver管理的region的rowkey範圍中, 這樣就   能鎖定rowkey所在的region, 然後根據布隆過濾器可以反向找出這個  rowkey 在這個 region 的哪一個StoreFile 中, 這樣就實現了快速定址。

二、HRegionServer中資料寫流程

    1. 當客戶端發起一個Put請求時, 首先它從hbase:meta表中查出該Put資料最終需要去的HRegionServer。然後客戶端將Put請  求傳送給相應的HRegionServer,在HRegionServer中它首先會將該   Put操作寫入WAL日誌檔案中(Flush到磁碟中)

     2. 寫完WAL日誌檔案後,HRegionServer根據Put中的TableName和RowKey找到相對應的HRegion, 並根據Column Family找到對應的HStore,並將Put寫入到該HStore的MemStore中。此時寫成功,  並返回通知客戶端。

三、HBase rowkey設計原則

    首先, rowkey的長度儘量小一些,儘量不超過16個位元組,避免佔用太大的資源,影響儲存效率和檢索;遵循rowkey雜湊原則,可以實現負載均衡;設計上必須保證rowkey的唯一性; rowkey是按照字典  排序的,因此,一些場景可以利用這個特性,比如一天的資料儲存到一塊, 可以提高檢索效率。總之,rowkey 的設計是很靈活的,需要視具體需求而定設計方法。