發(fā)展歷史
- HBASE是建立在HDFS上的高性能數(shù)據(jù)庫(kù)系統(tǒng)
- 通過ROWKEY和主鍵的range來檢索數(shù)據(jù)
- HIVE支持多表的復(fù)雜操作
- 主要是橫向擴(kuò)展,通過增加廉價(jià)的服務(wù)器吆豹,來提高計(jì)算能力
- 表名,行健壶笼,列組嗡午,列码党,值
HBASE中的行只支持三種方式訪問
1.通過單個(gè)ROWKEY訪問
2.通過ROWKEY的范圍訪問
3.全表掃描
注意ROWKEY在HBASE的內(nèi)部保存為“字節(jié)數(shù)組”抚吠,一般長(zhǎng)度為100左右的BYTES
- HBase中通過row和columns確定的為一個(gè)存貯單元稱為cell常潮。每個(gè)cell都保存著同一份數(shù)據(jù)的多個(gè)版本
- 不同版本的數(shù)據(jù)按照倒序排序,最新的排在最前面
- 時(shí)間戳可以自動(dòng)賦值楷力,也可以由客戶端顯示賦值喊式,時(shí)間精確到當(dāng)前時(shí)間系統(tǒng)毫秒
- 都是按照字節(jié)碼形式存儲(chǔ)(CELL中)
-
Table 在行的方向上分割為多個(gè)Hregion
-
region按大小分割的,每個(gè)表一開始只有一個(gè)region萧朝,隨著數(shù)據(jù)不斷插入表岔留,region不斷增大,當(dāng)增大到一個(gè)閥值的時(shí)候检柬,Hregion就會(huì)等分會(huì)兩個(gè)新的Hregion献联。當(dāng)table中的行不斷增多,就會(huì)有越來越多的Hregion
-
Hregion是Hbase中分布式存儲(chǔ)和負(fù)載均衡的最小單元何址。最小單元就表示不同的Hregion可以分布在不同的HRegion server上里逆。但一個(gè)Hregion是不會(huì)拆分到多個(gè)server上的
-
HRegion雖然是分布式存儲(chǔ)的最小單元,但并不是存儲(chǔ)的最小單元用爪。
事實(shí)上运悲,HRegion由一個(gè)或者多個(gè)Store組成,每個(gè)store保存一個(gè)columns family项钮。
每個(gè)Strore又由一個(gè)memStore和0至多個(gè)StoreFile組成。如圖:
StoreFile以HFile格式保存在GFS上
系統(tǒng)架構(gòu)
ZOOKEEPER
1.保證任何時(shí)候希停。集群中只有一個(gè)MASTER
2.存儲(chǔ)所有REGION的尋址入口
3.監(jiān)控REGION SERVER烁巫,將其上線,下線的消息通知給MASTER
4.存儲(chǔ)HBASE的圖表宠能,包括有那些TABLE亚隙,每個(gè)由那些列組(CF)
MASTER
1.為region server分配region
2.負(fù)責(zé)region server的負(fù)載均衡
3.發(fā)現(xiàn)失效的regionserver并重新
分配其上的region
4.GFS上的垃圾文件回收
5.處理schema(圖表)更新請(qǐng)求
REGION SERVER
1 Region server維護(hù)Master分配給它的region,處理對(duì)這些region的IO請(qǐng)求
2 Region server負(fù)責(zé)切分在運(yùn)行過程中變得過大的region
可以看到违崇,client訪問hbase上數(shù)據(jù)的過程并不需要master參與(尋址訪問zookeeper和region server阿弃,數(shù)據(jù)讀寫訪問regione server),master僅僅維護(hù)者table和region的元數(shù)據(jù)信息羞延,負(fù)載很低