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

1.1 什么是HBase

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

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

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

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

-- 2008年北京成功開奧運會,程序員默默地將HBase弄成了Hadoop的子項目

-- 2010年HBase成為Apache頂級項目

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

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

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

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

1.2 Hbase特點

1海量存儲

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

2列式存儲

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

3極易擴展

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

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

4高并發(fā)

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

5稀疏

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