尚硅谷大數(shù)據(jù)技術(shù)之HBase(新)第1章 HBase簡介

1.1 什么是HBase

HBase的原型是Google的BigTable論文,受到了該論文思想的啟發(fā),目前作為Hadoop的子項(xiàng)目來開發(fā)維護(hù),用于支持結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ)。

官方網(wǎng)站:http://hbase.apache.org

-- 2006年Google發(fā)表BigTable白皮書

-- 2006年開始開發(fā)HBase

-- 2008年北京成功開奧運(yùn)會(huì),程序員默默地將HBase弄成了Hadoop的子項(xiàng)目

-- 2010年HBase成為Apache頂級(jí)項(xiàng)目

-- 現(xiàn)在很多公司二次開發(fā)出了很多發(fā)行版本,你也開始使用了。

HBase是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),利用HBASE技術(shù)可在廉價(jià)PC Server上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群。

HBase的目標(biāo)是存儲(chǔ)并處理大型的數(shù)據(jù),更具體來說是僅需使用普通的硬件配置,就能夠處理由成千上萬的行和列所組成的大型數(shù)據(jù)。

HBase是Google Bigtable的開源實(shí)現(xiàn),但是也有很多不同之處。比如:Google Bigtable利用GFS作為其文件存儲(chǔ)系統(tǒng),HBase利用Hadoop HDFS作為其文件存儲(chǔ)系統(tǒng);Google運(yùn)行MAPREDUCE來處理Bigtable中的海量數(shù)據(jù),HBase同樣利用Hadoop MapReduce來處理HBase中的海量數(shù)據(jù);Google Bigtable利用Chubby作為協(xié)同服務(wù),HBase利用Zookeeper作為對(duì)應(yīng)。

1.2 Hbase特點(diǎn)

1海量存儲(chǔ)

Hbase適合存儲(chǔ)PB級(jí)別的海量數(shù)據(jù),在PB級(jí)別的數(shù)據(jù)以及采用廉價(jià)PC存儲(chǔ)的情況下,能在幾十到百毫秒內(nèi)返回?cái)?shù)據(jù)。這與Hbase的極易擴(kuò)展性息息相關(guān)。正式因?yàn)镠base良好的擴(kuò)展性,才為海量數(shù)據(jù)的存儲(chǔ)提供了便利。

2列式存儲(chǔ)

這里的列式存儲(chǔ)其實(shí)說的是列族存儲(chǔ),Hbase是根據(jù)列族來存儲(chǔ)數(shù)據(jù)的。列族下面可以有非常多的列,列族在創(chuàng)建表的時(shí)候就必須指定。

3極易擴(kuò)展

Hbase的擴(kuò)展性主要體現(xiàn)在兩個(gè)方面,一個(gè)是基于上層處理能力(RegionServer)的擴(kuò)展,一個(gè)是基于存儲(chǔ)的擴(kuò)展(HDFS)。
通過橫向添加RegionSever的機(jī)器,進(jìn)行水平擴(kuò)展,提升Hbase上層的處理能力,提升Hbsae服務(wù)更多Region的能力。

備注:RegionServer的作用是管理region、承接業(yè)務(wù)的訪問,這個(gè)后面會(huì)詳細(xì)的介紹通過橫向添加Datanode的機(jī)器,進(jìn)行存儲(chǔ)層擴(kuò)容,提升Hbase的數(shù)據(jù)存儲(chǔ)能力和提升后端存儲(chǔ)的讀寫能力。

4高并發(fā)

由于目前大部分使用Hbase的架構(gòu),都是采用的廉價(jià)PC,因此單個(gè)IO的延遲其實(shí)并不小,一般在幾十到上百ms之間。這里說的高并發(fā),主要是在并發(fā)的情況下,Hbase的單個(gè)IO延遲下降并不多。能獲得高并發(fā)、低延遲的服務(wù)。

5稀疏

稀疏主要是針對(duì)Hbase列的靈活性,在列族中,你可以指定任意多的列,在列數(shù)據(jù)為空的情況下,是不會(huì)占用存儲(chǔ)空間的。