轉載請註明出處:
1.Google的三篇論文
2003年,Google釋出Google File System論文,(GFS)這是一個可擴充套件的分佈 式檔案系統,用於大型的、分散式的、對大量資料進行訪問的應用。它執行於廉價 的普通硬體上,提供容錯功能。從根本上說:檔案被分割成很多塊,使用冗餘的方 式儲存於商用機器叢集上。
緊隨其後,2004年,Google公佈了MapReduce論文,論文描述了大資料的分佈 式計算方式,主要思想是將任務分解然後在多臺處理能力較弱的計算節點中同時處 理,然後將結果合併從而完成大資料處理。
接著到了2006年,Google公佈了BigTable論文,BigTable是一種構建於GFS和 MapReduce之上的多維稀疏圖管理工具。
正是這三篇論文,掀起了開源軟體的大資料熱潮。人們根據GFS,開發出了HDFS 檔案儲存。MapReduce計算框架,也成了海量資料處理的標準。而HDFS與 MapReduce結合在一起,形成了Hadoop。而BigTable更是啟發了無數的NoSQL 資料庫。而HBase正是繼承了正統的BigTable思想。所以,Hadoop+HBase是模擬 了Google處理海量網頁的三大基石實現的,他們也就成了開源大資料處理的基石。
2.Hbase是什麼
HBase是一種構建在HDFS之上的分散式、面向列的儲存系統。
HBase是構建於HDFS上的一套分散式非結構化資料儲存系統,類似於Redis之類的Key-Value資料庫,可以透過key進行大規模資料的快速索引查詢。目前常用於在大規模資料中快速查詢某些資訊記錄,例如從幾億使用者資訊中快速查詢某個使用者資訊。
特性:
- 對於檢索key查詢value可以做到毫秒級的響應,滿足大多數低延遲相應的要求;
- 底層使用HDFS作為檔案儲存系統,讓HBase的單表儲存記錄數可以達到極高的規模。
在需要實時讀寫、隨機訪問超大規模資料集時,可以使用HBase。
儘管已經有許多資料儲存和訪問的策略和實現方法,但事實上大多數解決方案,特別是一些關係型別的,在構建時並沒有考慮超大規模和分散式的特點。許多商家透過複製和分割槽的方法來擴充資料庫使其突破單個節點的界限,但這些功能通常都是事後增加的,安裝和維護都很複雜。同時,也會影響RDBMS的特定功能,例如聯接、複雜的查詢、觸發器、檢視和外來鍵約束這些操作在大型的RDBMS上的代價相當高,甚至根本無法實現。
HBase從另一個角度處理伸縮性問題。它透過線性方式從下到上增加節點來進行擴充套件。HBase不是關係型資料庫,也不支援SQL,但是它有自己的特長,這是RDBMS不能處理的,HBase巧妙地將大而稀疏的表放在商用的伺服器叢集上。
HBase是可以提供實時計算的分散式資料庫,資料被儲存在HDFS分散式檔案系統上,由HDFS保證期高容錯性;
Hadoop是一個高容錯、高延時的分散式檔案系統和高併發的批處理系統,不適用於提供實時計算;HBase是可以提供實時計算的分散式資料庫,資料被儲存在HDFS分散式檔案系統上,由HDFS保證期高容錯性。
它是Hadoop的生態系統,提供對資料的隨機實時讀/寫訪問,是Hadoop檔案系統的一部分。我們可以直接或透過HBase的儲存HDFS資料。使用HBase在HDFS讀取消費/隨機訪問資料。 HBase在Hadoop的檔案系統之上,並提供了讀寫訪問。
3.Hbase特性
Apache HBase是一個Hadoop上的資料庫。一個分散式,可擴充套件的大資料儲存 引擎。HBase有個最明顯的特徵:
1、HBase支援非常大的資料集,數十億行*數百萬列。如此龐大的資料量級,足以 撐爆我們在J2EE階段學習過的所有資料儲存引擎。
2、HBase支援大資料量的隨機、實時讀寫操作。在海量資料中,可以實現毫秒級的 資料讀寫。
3、HBase從一開始就深度整合了Hadoop。HBase基於Hadoop進行檔案持久化, 還繼承了Hadoop帶來的強大的可擴充套件性。Hadoop可以基於廉價PC機組建龐大的 應用叢集。HBase也深度整合了Hadoop的MapReduce計算框架,並且也正在積極 整合Spark。這使得HBase能夠很輕鬆的融入到整個大資料生態圈。
4、HBase的資料是強一致性的,從CAP理論來看,HBase是屬於CP的。這種設計 可以讓程式設計師不需要擔心臟讀、幻讀這些事務最終一致性帶來的問題。
5、最後最重要的還是HBase的框架效能是足夠高效的。HBase的開源社群非常活 躍,他的效能經過很多大型商業產品的驗證。Facebook的整個訊息流轉的基礎設施 就構建於HBase之上。