大資料儲存基石進一步學習
一:基本資訊
1.Hbase是什麼
2006年,Google公佈了BigTable論文,BigTable是一種構建於GFS和 MapReduce之上的多維稀疏圖管理工具。
正是這三篇論文,掀起了開源軟體的大資料熱潮。人們根據GFS,開發出了HDFS 檔案儲存。MapReduce計算框架,也成了海量資料處理的標準。而HDFS與 MapReduce結合在一起,形成了Hadoop。而BigTable更是啟發了無數的NoSQL 資料庫。而HBase正是繼承了正統的BigTable思想。所以,Hadoop+HBase是模擬 了Google處理海量網頁的三大基石實現的,他們也就成了開源大資料處理的基石。
2.資料結構
HBase也可以作為一個數據庫使用,但是為了應對海量資料,他儲存資料的方式 與我們理解的傳統關係型資料庫有很大的區別。雖然他也有表、列這樣的邏輯結 構,但是整體上,他是以一種k-v鍵值對的方式來儲存資料的。
縱向來看,HBase中的每張表由Rowkey和若干個列族或者稱為列簇組成。其中 Rowkey是每一行資料的唯一標識,在對資料進行管理時,必須自行保證Rowkey的 唯一性。接下來HBase依然會以不同的列來管理資料,但是這些列分別歸屬於不同 的列簇。在HBase中,同一張表的資料,只需要保證列簇是相同的,而列簇下的 列,可以是不相同的。所以由此可以擴展出非常多的列。在HBase中,對於同一張 表,不建議定義過多的列簇,通常不要超過三個。而更多的資料,可以以列的方式 來擴充套件。
從橫向來看,HBase中的記錄,會劃分為一個一個的Region,儲存在不同的 RegionServer上。並且會在不同的RegionServer之前形成備份,以Region為單位 提供了故障後自動恢復的機制。
最後,從整體來看,HBase雖然還是以HDFS作為檔案儲存,但是他儲存的資料不再是簡單的文字檔案,而是經過HBase優化壓縮過的二進位制檔案,所以他的儲存文 件通常是不能夠直接檢視的。
3.基礎架構
其中,
client客戶端包含了訪問HBase的介面,另外也維護了對應的快取來加速對 HBase的訪問。
RegionServer直接對接使用者的讀寫請求,是真正幹活的節點。他會將資料以 StoreFile的形式儲存到不同的HDFS目錄中。
HMaster主要是維護一些叢集的元資料資訊,同時監控RegionServer的服務狀 態,並且通過Zookeeper提供叢集服務,向客戶端暴露叢集的服務端資訊。
二:基本操作
1.