1.hbase的特色:sql
1.它介於nosql和RDBMS之間,僅能經過主鍵(row key) 和主鍵的range來檢索數據,僅支持單行事務,負載均衡
2.Hbase查詢數據功能簡單,不支持join等複雜的操做nosql
3.不支持複雜的事務spa
4.hbase中支持的數據類型:byte[]設計
5.主要用來存儲結構化和半結構化的鬆散數據server
2.描述Hbase的rowkey的設計原則接口
1.長度原則,推薦10-100個字節事務
2.散列原則,避免咱們的數據熱點問題,致使咱們的數據都只在一個region上。it
3.惟一性原則io
3.簡述HBase的compact用途是什麼,何時觸發,分爲哪兩種,有什麼區別?
將小文件合併成大文件
小文件數量達到必定數量
minor合併(輕量級)和major合併(重量級)
二者的區別是:major合併會把以前被標記刪除的數據,還有過時的數據等數據都會被刪除,而minor合併不會這樣
4.HBase的容錯性
1.hmaster的容錯性
2.regionServer容錯性
3.zookeeper的容錯性
4.Hlog的使用,region的從新寫的操做
5.在Hbase中的經過哪些條件來惟一肯定一個單元格的值
rowkey,列族+列,版本號
6.描述Hbase的核心功能模塊及做用,
client:包含訪問Hbase的接口,並維護cache來加快對Hbase的訪問。
Master:爲regionServer分配region,regionServer的負載均衡,發現失效的RegionServer並從新分配其上的region,管理用戶對錶的增刪改查操做
RegionServer:維護region,處理對這些 region的IO請求,切分運行過程當中變大的region。
7.Hbase的元數據表有那幾張,他們裏面都存放了什麼內容?
-ROOT:
meta:存放了全部的region信息和regionServer信息。
8.zookeeper在Hbase中的做用是什麼?
1.存放meta的元數據信息
2.存放Hmaster的信息
9.描述HBase讀寫數據的過程
1.寫:
1,Client先訪問zookeeper,從meta表獲取相應region信息,而後找到meta表的數據
2,根據namespace、表名和rowkey根據meta表的數據找到寫入數據對應的region信息
3,找到對應的regionserver
4,把數據分別寫到HLog和MemStore上一份
5,MemStore達到一個閾值後則把數據刷成一個StoreFile文件。(若MemStore中的數據有丟失,則能夠總
HLog上恢復)
6,當多個StoreFile文件達到必定的大小後,會觸發Compact合併操做,合併爲一個StoreFile,(這裏同時進行
版本的合併和數據刪除。)
7,當Storefile大小超過必定閾值後,會把當前的Region分割爲兩個(Split),並由Hmaster分配到相應的
HRegionServer,實現負載均衡
2.讀:
1,Client先訪問zookeeper,從meta表讀取region的位置,而後讀取meta表中的數據。meta中又存儲了用戶表的region信息。 2,根據namespace、表名和rowkey在meta表中找到對應的region信息 3,找到這個region對應的regionserver 4,查找對應的region 5,先從MemStore找數據,若是沒有,再到StoreFile上讀(爲了讀取的效率)。