一、介紹
1、hbase是面向列的數(shù)據(jù)庫,構(gòu)建在hadoop之上
2、類似于google的bigtable,對海量結(jié)構(gòu)化數(shù)據(jù)的快速隨機(jī)訪問
3、是hadoop生態(tài)系統(tǒng)的一部分,提供實(shí)時(shí)隨機(jī)讀寫
二、hbase與hadoop的區(qū)別
hdfs:
1、分布式文件系統(tǒng),存儲(chǔ)大量數(shù)據(jù)
2、不支持快速單個(gè)記錄查找
3、提供了高延遲批處理
4、只提供數(shù)據(jù)按序訪問
hbase:
1、數(shù)據(jù)庫,構(gòu)建在hdfs之上
2、支持大表的快速查找
3、提供了單行記錄低延遲的隨機(jī)訪問(10億級別)
4、內(nèi)部使用hash表提供的隨機(jī)訪問,在hdfs上存放索引文件,用于快速查找
三、hbase存儲(chǔ)機(jī)制
1、面向列族的數(shù)據(jù)庫,適用于海量數(shù)據(jù)的隨機(jī)讀寫
2、table中之定義了列族,表按照row存儲(chǔ)
3、術(shù)語
table : 表,是row的集合
row : 行,是列族的集合
column famil : 列族,是列的集合
colum : 列,是kv對集合
4、面向行和面向列的區(qū)別
row
a、適合OLTP
b、針對行列較少的
column
a、適合于OLAP
b、大表
四、hbase和RDBMS的區(qū)別
hbase
1、是無模式的,沒有列的定義,之定義列族,列是key
2、適合于寬表,水平可伸縮
3、沒有事物支持
4、不是規(guī)范化的
5、數(shù)據(jù)是結(jié)構(gòu)化和半結(jié)構(gòu)化的
rdbms
1、有模式的,描述整個(gè)table結(jié)構(gòu)
2、適合于小表,難以擴(kuò)展
3、事物性的
4、規(guī)范化的
5、結(jié)構(gòu)化的
五、hbase架構(gòu)
1、master---slave 主從結(jié)構(gòu)
2、table從豎直方向進(jìn)行切割,分成若干個(gè)區(qū)域,由每個(gè)regionserver進(jìn)行處理
3、master server(ms)
a、負(fù)責(zé)指派region給rs,通過ak獲得task的幫助
b、處理跨rs的region的負(fù)載均衡問題
c、從 繁忙服務(wù)器到空閑服務(wù)器之間的數(shù)據(jù)轉(zhuǎn)載
d、通過裁定負(fù)載均衡判斷集群的狀態(tài)
4、region
被切割的表,跨rs
5、region server(rs)
a、和client通信
b、處理數(shù)據(jù)操作
c、處理他下面的所有的region的讀寫請求
d、通過閾值決定size