您好,登錄后才能下訂單哦!
這篇文章主要介紹了HBase有什么優化點,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
HBase 有哪些優化點?
這是個相對開放的問題,問題沒有那么得細,面對這種問題千萬不要亂了陣腳,其實這種問題答得好是很加分的,可以從幾個不同的方向來回答,這樣顯得有條理,而且可以向面試官展現你的多維度思考和總結的能力。
兩個角度,一個從使用者的角度,一個從維護者的角度。
1. 從使用者的角度,可以優化存儲模型的設計,包括以下幾個方面:
rowkey設計:高位用散列,長度不宜過長,可以適當地把需要檢索的條件拼接在rowkey里。查詢時盡量用get,scan時要指定start/end key。
列族的設計:列族盡量少,且不同列族的數據量要盡量均勻。
列族盡量少是因為列族對應的底層存儲的一個文件目錄,文件目錄少有助于提高文件檢索速度。
數據量要均勻是因為,當一個cf量大到一定程度,memstore會刷盤,而刷盤這個動作不是只針對單個cf,而是整個服務器,這個時候如果另一個cf的數據量很小那也會跟著刷盤,這就造成了會有大量小文件生成,HDFS是最忌諱小文件的,同時小文件的過多也會影響檢索的效率,需要從多個文件中檢索目標。
預分區:在寫比較頻繁的場景下,數據增長太快,split的次數也會增多,額外的資源消耗也會增大,另外數據分布不均勻會造成熱點問題,這些都是需要預分區的原因。
2. 從系統維護者的角度來說,可以對系統優化,包括以下幾個方面:
內存優化:HBase有兩塊主要的內存memstore和blockCache的配置
BlockCache,如果寫比讀少很多,可以開到0.4-0.5。如果讀寫較均衡,0.3左右。如果寫比讀多,就默認0.2。設置這個值的時候,也要參考hbase.regionserver.global.memstore.upperLimit,該值是memstore占heap的最大百分比,兩個參數一個影響讀,一個影響寫。如果兩值加起來超過80-90%,會有OOM的風險。具體就不說了,看我之前的文章 HBase篇(4)-你不知道的HFile
GC優化:默認cms,可以優化為G1。
壓縮:默認未開啟,建議使用Snappy和LZO,壓縮比,壓縮解壓速率,資源消耗都是比較平衡的。
BloomFilter:默認未開啟,需要在建立表的時候加入。用布隆過濾可以節省讀磁盤過程,可以有助于降低讀取延遲。具體就不說了看我之前的文章 HBase篇(5)- BloomFilter
其實還有一些其他零零散散的點,就不說了,說這么多對于這個問題來說已經回答地很完美了。說這些的過程中的某些點面試官很有可能是會追問下去的,比如內存優化,bloomfilter等,所以可以看得深入一點,回答的時候也能更加從容一點。
HRegionServer宕機后系統是怎么保證可用性的 ?
宕機恢復的過程也是面試中的常見問題,重點是wal機制。
1. ZooKeeper會監控HRegionServer的上下線情況,當ZK發現某個HRegionServer宕機之后會通知HMaster進行失效備援;
2. 該HRegionServer會停止對外提供服務,就是它所負責的region暫時停止對外提供服務
3. HMaster會將該HRegionServer所負責的region轉移到其他HRegionServer上,并且會對HRegionServer上存在memstore中還未持久化到磁盤中的數據進行恢復
4. 這個恢復的工作是由WAL重播來完成,這個過程如下:
wal實際上就是一個文件,存在/hbase/WAL/對應RegionServer路徑下。
宕機發生時,讀取該RegionServer所對應的路徑下的wal文件,然后根據不同的region切分成不同的臨時文件recover.edits。
當region被分配到新的RegionServer中,RegionServer讀取region時會進行是否存在recover.edits,如果有則進行恢復。
說說HBase 的 compaction 過程和作用?
在hbase中每當有memstore數據flush到磁盤之后,就形成一個storefile,當storeFile的數量達到一定程度后,就需要將 storefile 文件來進行 compaction 操作。
compaction 的作用:
合并文件
清除過期,多余版本的數據
提高讀寫數據的效率
另外可以再說下compaction的兩種方式。
HBase 中實現了兩種 compaction 的方式:minor and major. 這兩種 compaction 方式的區別是:
1. Minor 操作只用來做部分文件的合并操作以及包括 minVersion=0 并且設置 ttl 的過期版本清理,不做任何刪除數據、多版本數據的清理工作。
2. Major 操作是對 Region 下的HStore下的所有StoreFile執行合并操作,最終的結果是整理合并出一個文件。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“HBase有什么優化點”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。