尚硅谷大數據技術之HBase(新)第1章 HBase簡介
1.1 什么是HBase
HBase的原型是Google的BigTable論文,受到了該論文思想的啟發,目前作為Hadoop的子項目來開發維護,用于支持結構化的數據存儲。
官方網站:http://hbase.apache.org
-- 2006年Google發表BigTable白皮書
-- 2006年開始開發HBase
-- 2008年北京成功開奧運會,程序員默默地將HBase弄成了Hadoop的子項目
-- 2010年HBase成為Apache頂級項目
-- 現在很多公司二次開發出了很多發行版本,你也開始使用了。
HBase是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBASE技術可在廉價PC Server上搭建起大規模結構化存儲集群。
HBase的目標是存儲并處理大型的數據,更具體來說是僅需使用普通的硬件配置,就能夠處理由成千上萬的行和列所組成的大型數據。
HBase是Google Bigtable的開源實現,但是也有很多不同之處。比如:Google Bigtable利用GFS作為其文件存儲系統,HBase利用Hadoop HDFS作為其文件存儲系統;Google運行MAPREDUCE來處理Bigtable中的海量數據,HBase同樣利用Hadoop MapReduce來處理HBase中的海量數據;Google Bigtable利用Chubby作為協同服務,HBase利用Zookeeper作為對應。
1.2 Hbase特點
1)海量存儲
Hbase適合存儲PB級別的海量數據,在PB級別的數據以及采用廉價PC存儲的情況下,能在幾十到百毫秒內返回數據。這與Hbase的極易擴展性息息相關。正式因為Hbase良好的擴展性,才為海量數據的存儲提供了便利。
2)列式存儲
這里的列式存儲其實說的是列族存儲,Hbase是根據列族來存儲數據的。列族下面可以有非常多的列,列族在創建表的時候就必須指定。
3)極易擴展
Hbase的擴展性主要體現在兩個方面,一個是基于上層處理能力(RegionServer)的擴展,一個是基于存儲的擴展(HDFS)。
通過橫向添加RegionSever的機器,進行水平擴展,提升Hbase上層的處理能力,提升Hbsae服務更多Region的能力。
備注:RegionServer的作用是管理region、承接業務的訪問,這個后面會詳細的介紹通過橫向添加Datanode的機器,進行存儲層擴容,提升Hbase的數據存儲能力和提升后端存儲的讀寫能力。
4)高并發
由于目前大部分使用Hbase的架構,都是采用的廉價PC,因此單個IO的延遲其實并不小,一般在幾十到上百ms之間。這里說的高并發,主要是在并發的情況下,Hbase的單個IO延遲下降并不多。能獲得高并發、低延遲的服務。
5)稀疏
稀疏主要是針對Hbase列的靈活性,在列族中,你可以指定任意多的列,在列數據為空的情況下,是不會占用存儲空間的。