表按照行鍵進行了排序,所以查詢時可以很快定位
資料按照行鍵切分為多個hregion,分布在多個regionserver中,查詢大量資料時,多個regionserver可以一起工作,從而提高速度
hregion是存活在regionserver的記憶體中的,讀寫會非常的高效
還有hfile的支援保證大量的資料可以持久化的儲存
資料最終落地到hdfs中,分布式的儲存,保證資料段可靠性和可擴充套件性
hash儲存,hashcode()%num (hash取餘)
優點:hbase讀寫效率都高,也支援增刪改隨機讀取資料。
缺點:存入資料的順序,會丟失掉。
優點:寫效率高,讀效率高,順序資訊不會丟失
缺點:當資料量很大,效能大幅下降
lsm樹的設計思想:將對資料的修改增量保持在記憶體中,最後統一將這些修改操作批量寫入磁碟。讀取則需要合併磁碟中歷史資料和記憶體中最近修改操作。讀取時先讀記憶體,若不存在則訪問磁碟。
支援增、刪、讀、改、順序掃瞄操作
犧牲了一部分讀的效能換取了高效寫入能力
在設計hbase表時候,列族不宜過多,越少越好,官方推薦hbase表的列族不宜超過3個。
經常要在一起查詢的資料最好放在乙個列族中,盡量的減少跨列族的資料訪問。
如果有多個列族 多個列族中的資料應該設計的比較均勻。
hbase錶行鍵設計的好壞,直接影響hbase的查詢的效能和查詢的便利性
行鍵設計的基本原則
行鍵必須唯一,必須唯一才能唯一標識資料
行鍵必須有意義,這樣才能方便資料的查詢
行鍵最好是字串型別,因為數值型別在不同的系統中處理的方式可能不同
行鍵最好具有固定的長度,不同長度的資料可能會造成自然排序時排序的結果和預期不一致
行鍵不宜過長,行鍵最多64kb,但最好是在10~100位元組之間,最好不要超過16位元組,越短越好,最好是8位元組的整數倍。
雜湊原則
行鍵的設計將會影響資料在hbase表中的排序方式,這會影響region切分後的結果,要注意,在設計行鍵時應該讓經常要查詢的資料分散在不同的region中,防止某乙個或某幾個regionserver成為熱點
有序原則
行鍵的設計將會影響資料在hbase表中的排序方式,所以一種策略是將經常連續查詢的條件作為行鍵最前面的資料,這樣一來可以方便批量查詢
面試 Hbase面試問題
1.hbase怎麼預分割槽?2.hbase怎麼給web前台提供介面來訪問?3.htable api有沒有執行緒安全問題,在程式中是單例還是多例?4.hbase有沒有併發問題?5.metaq訊息佇列,zookeeper集群,storm集群,就可以完成對 推薦系統功能嗎?還有沒有其他的中介軟體?6.st...
面試,HBase如何設計rowkey
hbase中的rowkey是按字典順序排序的,通過rowkey查詢可以對千萬級的資料實現毫秒級響應。然而,如果rowkey設計不合理的話經常會出現乙個很普遍的問題 熱點。當大量client的請求 讀或者寫 只指向集群的乙個節點,或者很少量的幾個節點時,也就代表產生了熱點問題。避免產生熱點的方式也就是...
hbase面試題彙總(8)
1 乙個hadoop環境,整合了hbase和hive,是否有必要給hdfs和hbase都分別配置壓縮策略?請給出對壓縮策略的建議。2 hadoop和hbase等元件會互相競爭資源,如果需要開發乙個排程模組協調這種競爭,請給出自己的思路 簡述 3 簡述hbase效能優化的思路。4 簡述hbase fi...