一、hbase對數據的管理機制緩存
1.一、hbase中的表很大---bigtable,都是分佈式存儲在集羣的各個regionserver上
1.二、分佈式存儲時,須要對錶進行切分,首先是按行切分紅若干個hregion
1.三、表的每個hregion都會被一個regionserver所管理
1.四、每個hregion隨着插入數據的增多,一旦達到一個閾值,會被regionserver分裂成兩個
1.五、在一個hregion內部還會被按照列族切分紅若干個store單元
1.六、每個store又會被切分紅若干個store file(HFile)存儲到hdfs文件系統中
1.七、每個store對象中會維護一個內存緩存 memstore,用戶查詢數據時首先會去memstore中進行命中
1.八、客戶端往表中插入數據,首先會在hlog日誌中進行記錄,而後按期進行flush合併分佈式
二、hbase尋址機制 spa
文件: 設計
.META.:記錄表名、hregion起始行鍵(rowkey)、RS主機名等信息日誌
-ROOT-:記錄.META.的region的起始行健等信息(位置信息記錄在zookeepr中)server
尋址過程:client -> -ROOT- -> .META. -> RS ->region -> rowkey對象
緩存機制:經過尋址過程找到rowkey後緩存到客戶端本地,以便下次查詢增快速度排序
三、行鍵設計技巧索引
問題描述:在查詢符合某種描述的用戶時,例如:查出姓「張」的全部用戶或者根據年齡範圍查詢,hbase不像通常的RDBMS能夠隨便創建索引(分佈式創建二級索引不是很容易,很是複雜),沒法對rowkey之外的字段創建索引內存
行鍵設計:經過上面的問題引出作行鍵設計的必要,在作表設計時能夠將須要常常過濾的關鍵字、重要的信息放在行鍵裏面,例如:rk00001-zhang-18-beijing
注意:
行鍵支持64KB大小
hbase自動對行鍵按字典排序,因此設計時儘可能讓連續數據排在一塊兒,以便範圍查詢時可提升效率。
四、hbase二級索引
4.一、用solr對hbase中的信息創建全文索引
4.二、使用coprocessor機制