一、查看錶
二、屬性介紹
2.1 BLOOMFILTER
布隆過濾器,可選值NONE|ROW|ROWCOL,默認爲NONE,該參數可以單獨對某個列簇啓用。對於get操作以及部分scan操作可以剔除掉不會用到的存儲文件,減少實際IO次數,提高隨機讀性能。Row類型適用於只根據Row進行查找,而RowCol類型適用於根據Row+Col聯合查找,如下:
Row類型適用於:get ‘NewsClickFeedback’,’row1′
RowCol類型適用於:get ‘NewsClickFeedback’,’row1′,{COLUMN => ‘Toutiao’}
對於有隨機讀的業務,建議開啓Row類型的過濾器,使用空間換時間,提高隨機讀性能。 具體blommfilter的原理可參加這篇http://blog.csdn.net/hguisu/article/details/7866173
2.2 VERSIONS/MIN_VERSION
Hbase的數據存儲有多版本的概念,默認數據的版本爲1,每次更新數據的時候,會根據不同的時間戳保存不同的版本數據,如果想保存多份數據,可將最大版本數設置大於1。
2.3 IN_MEMORY
Blockcache讀緩存會分幾個層級,第一級就是IN_MEMORY級緩存,表示常駐內存,一般情況下元數據信息會放在IN_MEMORY級,而不要將大數據量設置爲常駐內存,這樣會將meta元數據信息給置換出去。
2.4 KEEP_DELETED_CELLS
HBase允許進行基於時間的查詢從而得到指定時間段的歷史數據。查詢時間T的數據即查詢[0,T+1)的數據。這樣就帶來了一個潛在的問題。當一個 delete marker被set上,所有被它影響到的數據都不再可見。如果你在時間T put了一個qualifier爲C的數據,接着在T+X的時間點刪除這個qualifier,此時查詢[0,T+1)時間段的數據將不會返回 qualifier爲C的這個KV對,而假如KEEP_DELETED_CELLS = true的話,被刪除的數據在基於時間的歷史數據查詢中依然可見。
2.5 DATA_BLOCK_ENCODEING
數據編碼格式,數據在落盤之前首先會對KV數據進行編碼;數據塊在緩存前並沒有執行解碼,因此即使後續命中緩存的查詢也是編碼的數據塊,需要解碼後才能獲取到具體的KV數據。默認爲NONE。
2.6 TTL
數據的過期時間,對於過期時間的數據,會在執行major compaction的時候刪除。
2.7 COMPRESSION
數據壓縮方式,意思是數據在落盤前是執行壓縮以此減少存儲空間,在讀取後需要解壓縮,目前hbase執行GZip | LZO | Snappy等壓縮方式,說白了就是耗CPU,從而減少存儲空間,一般情況下選擇Snappy的壓縮方式,雖然壓縮率不高,但CPU消耗較少。
2.8 BLOCKCACHE
讀緩存,默認一個HRegionServer一個BlockCache,建議開啓,默認也是開啓。
2.9 BLOCKSIZE
數據塊大小,默認塊大小爲64M。對於不同的業務數據,塊大小的合理設置對讀寫性能有很大的影響。而對塊大小的調整,主要取決於兩點:
1、 用戶平均讀取數據的大小。理論上講,如果用戶平均讀取數據的大小較小,建議將塊大小設置較小,這樣可以使得內存可以緩存更多block,讀性能自然會更好。相反,建議將塊大小設置較大。
2、 數據平均鍵值對大小,如果HFile存儲的kv鍵值對叫小,可以將blocksize設置小一點,減少在hfile裏數據的尋址時間。
2.10 REPLICATION_SCOPE
如果你的hbase集羣需要主從同步或者主主同步,需要在table上打開REPLICATION_SCOPE。