1. 背景
hbase 可以很方便的將、文字等檔案以二進位制的方式進行儲存。雖然 hbase 一般可以處理從 1 位元組到 10mb 大小的二進位制物件,但是 hbase 通常對於讀寫路徑的優化主要是針對小於 100kb 的值。當 hbase 處理資料為 100kb~10mb 時, 由於**(split)和壓縮(compaction)會引起寫的放大,從而會降低 hbase 性 能。所以在 hbase2.0+引入了 mob 特性,這樣保持了 hbase 的高效能、強一致 性和低開銷。
若要啟用 mob 功能,需要在每個 regionserver 進行配置,並在建表或者修改表 時對指定列族啟用 mob 特性。在 hbase 嘗鮮版中啟用 mob 功能,需要由 admin 使用者設定定期程序,以重新優化 mob 資料的分布。
2. 啟用和配置 regionserver 上的 mob 特性
增加或者修改 hbase-site.xml 檔案中的某些配置
2.1 設定 mob 檔案的快取配置
說明:hbase.mob.file.cache.size 開啟的檔案控制代碼快取數,預設值是 1000。通 過增加檔案控制代碼數可以提高讀的效能,可以減少頻繁的開啟、關閉檔案。若這個值設定過大,會導致「too many opened file handers」。
hbase.mob.cache.evict.period mob 快取淘汰快取的 mob 檔案時間間隔
(以秒為單位),預設值為 3600 秒。
hbase.mob.cache.evict.remain.ratio 當快取的 mob 檔案數 目超 過hbase.mob.file.cache.size 設定的數目後,會觸發 mob 快取淘汰機制 (eviction),0.5f 為剩餘的 mob 快取比率(0~1),預設的比率為 0.5f。
2.2 配置 mobmasterobserver 作為協處理器的 master
主要用於表在刪除後,mob 檔案的歸檔。
mob的管理 mob 特性為 hbase 引入新的讀寫路徑,此時我們採用外部工具對其進行優化處理,乙個是 expiredmobfilecleanerttl 處理 ttl 和時間的過期資料,另乙個是清理工具用來合併小的 mob 檔案或者多次更新、刪除的 mob 檔案。
2.2.1 清理過期的 mob 資料(expiredmobfilecleaner)
設定清理延時
2.2.2 清理工具
屬性值設定如下:
說明:hbase.mob.compaction.invalid.file.ratio 如果在 mob 檔案中刪除了太 多的單元格,則被視為作為無效檔案,需要重新寫入或者合併。當 mob 檔案 (mobfilesize)大小減去存在的單元格(existingcellssize)大小之差除 以 mob 檔案(mobfilesize)的比率小於設定的值時,我們就認為其為無效 檔案。預設值為0.3f。
hbase.mob.compaction.small.file.threshold 如果 mob 的大小小於閾值, 則視為小檔案,需要合併。預設值為64mb。
hbase.mob.compaction.memstore.flush.size mob 裡 memstore 大小,超過 此大小就會 flush,並且每個 sweep reducer 擁有各自 memstore。
警告
使用清理工具最壞的情況:mob 檔案壓縮合併成功,但是相關的(put)更新失敗。 這意味著新的 mob 檔案已經建立但未能將新的 mob 檔案路徑。存入 hbase 中, 因此 hbase 不會指向這些 mob 檔案。
小貼士
在表中開啟 mob 特性 a 將列族設定為 mob
2.2.3 設定 mob 單元格的閾值,預設為 102400
對於客戶端而言,mob 單元格操作和普通單元格類似。
2.2.4 插入 mob 值
2.2.5 獲取 mob 值
2.2.6 獲取 mob 所有資料(raw =true)
執行乙個 mob 示例
案例篇 HBase 實戰之 MOB 使用指南
1.背景 hbase 可以很方便的將 文字等檔案以二進位制的方式進行儲存。雖然 hbase 一般可以處理從 1 位元組到 10mb 大小的二進位制物件,但是 hbase 通常對於讀寫路徑的優化主要是針對小於 100kb 的值。當 hbase 處理資料為 100kb 10mb 時,由於 split 和...
HBase實戰之MOB使用指南
hbase實戰之mob使用指南 hbase可以很方便的將 文字等檔案以二進位制的方式進行儲存。雖然hbase一般可以處理從1位元組到10mb大小的二進位制物件,但是hbase通常對於讀寫路徑的優化主要是針對小於100kb的值。當hbase處理資料為100kb 10mb時,由於 split 和壓縮 c...
Hbase學習之四 Hbase表設計案例
環境 虛擬機器 vmware 10 linux版本 centos 6.5 x86 64 客戶端 xshell4 ftp xftp4 jdk8 hadoop 2.6.5 hbase 0.98.12.1 hadoop2 hbase中表的設計 主要是將原來的關係解開 問題 例子 表設計一 表設計二 這是乙...