大數據培訓_Hbase為什么容量大速度快
引言
HBase被譽為超級大型分布式的數據庫,適合于存儲大表數據(表的規??梢赃_到數十億行以及數百萬列),并且對大表數據的讀、寫訪問可以達到實時級別。為什么HBase可以存儲那么大量的數據呢,為什么Hbase這么大型的數據可以實時讀取。
Hbase介紹
HBase是一個面向列、可伸縮、高可靠性、高性能的分布式存儲系統,同時也叫做分布式的數據庫。利用HBASE技術可在廉價PC Server上搭建起大規模結構化存儲集群。HBASE的目標是存儲并處理大型的數據,更具體來說是僅需使用普通的硬件配置,就能夠處理由成千上萬的行和列所組成的大型數據。
Hbase 架構
?
Habse寫數據流程
?、佟】蛻舳税l起請求
?、凇⊥ㄟ^ZooKeeper尋找到meta表所在RegionServer
?、邸eta表中記載著各個User Region信息(rowkey范圍,所在RegionServer),通過meta表尋找所要寫入的Region所在RegionServer
?、堋≌埱蟀碦egionServer和Region打包發送到Region所在RegionServer,由該RegionServer具體處理數據寫入
habse讀數據流程
?、佟】蛻舳税l起請求
?、凇⊥ㄟ^ZooKeeper尋找到meta表所在RegionServer
?、邸eta表中記載著各個User Region信息(rowkey范圍,所在RegionServer),通過rowkey查找meta表,獲取所要讀取的Region所在RegionServer
?、堋≌埱蟀l送到該RegionServer,由其具體處理數據讀取
?、荨祿x取返回到客戶端
為什么HBase可以存儲那么大量的數據呢
利用Hadoop HDFS(Hadoop Distributed File System)作為其文件存儲系統,提供實時讀寫的分布式數據庫系統。
?
從上圖了解到,如果你掌握了hadoop中的hdfs分布式文件系統,就很容易理解hbase為什么能存儲大量的數據。Hbase本身就是利用hadoop中的hdfs作為它的存儲系統。
為什么Hbase這么大型的數據可以實時讀取
?
很明顯habse是把一個超級大的表,進行分割成一塊一塊的數據,然而這一塊一塊都會帶著rowkey,把這一塊一塊的數據存儲到hadoop中的datanode數據節點中,這樣我們就保證大數表的數據被分成一個一個很小的表,從而數據庫要讀一個小表,那是多么簡單的事情,所以超級大表實現秒級也是可能的。