
本文將介紹大資料的知識和Hbase的基本概念,作為大資料體系中重要的一員,Hbase彌補了Hadoop只能離線批處理的不足,支持存盤小檔案,隨機檢索,而這種特性使得Hbase對于實時計算體系的事件存盤有天然的較好的支持,這使得Hbase在實時流式計算中也扮演者重要的角色,

1、大資料與Hbase
大資料在近幾年發展迅速,而實時計算也是一個重要的發展趨勢,不管是企業中的日志資料,還是傳感器、智能設備等等產生的資料,不計其數,
而這些資料中結構化的資料只占一小部分,大部分是非結構化的資料,這個時候,比如圖片視頻等就不能輕松的存盤在關系型資料庫中,而大資料是可以對各種型別的資料都可以進行處理的,

但關系型資料庫有幾點缺陷:
無法應對高并發的考驗,沒有辦法橫向擴展,事務一致性對性能的影響,
而Nosql資料庫,也就是Not Only Sql的縮寫,擴展性強,并發性能好,資料模型靈活,
Hbase,也就是Hadoop Database是一個高可靠、高性能、可伸縮的分布式資料庫,Hbase參考了谷歌的BigTable建模,使用HDFS作為底層存盤,使用Zookeeper作為協同服務組件,
Hbase使用Java撰寫,還是一種NoSQL資料庫,這些特性決定了Hbase獨特的應用場景,
2、概念特性
HBASE是一個資料庫----可以提供資料的實時隨機讀寫
HBASE與mysql、oralce、db2、sqlserver等關系型資料庫不同,它是一個NoSQL資料庫(非關系型資料庫)
Hbase的表模型與關系型資料庫的表模型不同:
? Hbase的表沒有固定的欄位定義;
? Hbase的表中每行存盤的都是一些key-value對;
? Hbase的表中有列族的劃分,用戶可以指定將哪些kv插入哪個列族;
? Hbase的表在物理存盤上,是按照列族來分割的,不同列族的資料一定存盤在不同的檔案中;
? Hbase的表中的每一行都固定有一個行鍵,而且每一行的行鍵在表中不能重復;
? Hbase中的資料,包含行鍵,包含key,包含value,都是byte[ ]型別,hbase不負責為用戶維護資料型別;
? HBASE對事務的支持很差;
HBASE相比于其他nosql資料庫(mongodb、redis、cassendra、hazelcast)的特點:
Hbase的表資料存盤在HDFS檔案系統中
從而,hbase具備如下特性:存盤容量可以線性擴展; 資料存盤的安全性可靠性極高!
3、核心模塊

客戶端Client
整個Hbase的入口,使用者通過客戶端操作Hbase,通過客戶端與HMaster和RegionServer進行通訊,管理類操作與HMaster通信,讀寫類操作與RegionServer通訊,
協調服務zookeeper
zookeeper負責管理Hbase中多個HMaster的選舉,服務器間狀態同步,
主節點HMaster
HMaster可以啟動多個,由zookeeper保證總有一個正常運行,其他作為備選,
HMaster主要負責Table和Region的管理作業,
節點HRegionServer
HRegionServer主要負責回應用戶IO請求,向HDFS中讀寫資料,HRegionServer管理了一系列的HRegion物件,HRegion對應了Table中的一個Region,HRegion由多個HStore組成,HStore對用了Table中一個Column Family,
而且每個HRegionServer都有一個HLog物件,用于資料恢復,
4、使用場景
搜索引擎
生成索引,在查詢時通過對條件的拼接,迅速的查找到要查詢的資料,
實時流式計算
不管是實時的推薦系統,還是日志的增量存盤,都是實時流式計算的一個應用,
通過將資料增量的存入Hbase,并在流式處理中實時查詢Hbase,結合歷史得到最終的分析結果,
更多Hbase,Flink,Kafka等實時流式計算相關博文,歡迎關注實時流式計算:

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/52389.html
標籤:大數據
上一篇:理解大資料
下一篇:Flume 初探
