1. 程式人生 > >Hadoop(4)--Hbase

Hadoop(4)--Hbase

進行 jdb election 面向 足夠 而且 split keep 中產

Hadoop 其它組成角色介紹--Hbase 在apache的官方網站上,對於Hbase的定義是他是Hadoop的第一個分布式、可擴展的大數據存儲的數據庫,他的目標是將非常大的表托管到一個集群中進行相應的存儲,區別於mysql等數據庫,它是一個非關系型數據庫,但是不支持sql語句的編寫 HBase的架構 (RPC:一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議) 客戶端Client 整個集群的訪問入口 ,使用HBase的RPC機制與HMaster和HRegionServer進行通信。對於管理類操作,Client 與HMaster 進行RPC 通信;對於數據讀寫類操作,Client 與RegionServer 進行RPC 交互。包含訪問HBase的接口,並維護cache來加強對HBase的訪問。 協調服務組件ZooKeeper ZooKeeper (隊列)負責管理HBase 中多HMaster 的選舉、服務器之間狀態同步等。HBase 中ZooKeeper 實例存儲HBase 元數據信息、實時監控RegionServer、存儲所有Region 的尋址入口.保證任何時候集群中只有一個HMaster。 主節點HMaster HMaster沒有單節點問題,Hbase中可以啟動多個HMaster,通過Zookeeper的Master Election 機制保證總有一個Master在運行,主要負責Table和Region的管理工作。管理用戶對表的增刪查改操作。管理HRegionServer的負載均衡,調整Region分布。Region Split之後,負責新Region的分布。在HRegionServer停機後,負責失效HRegioinServer上Region遷移工作。 Region 節點HRegionServer HRegionServer 主要負責響應用戶I/O 請求,向HDFS 文件系統中讀寫數據 HBase的特點 1、容量大:單表可以存儲大量的行、列,數據矩陣所支持的數量級可以彈性設置 2、面向列的存儲方式:傳統的數據庫的存儲方式在一開始的設計表的時候就已經將每一列的屬性進行了設定,不能再動態的進行添加,而Hbase主要有Row key,Column Family兩個屬性組成,例如設定User表,定義列族為info,那麽存儲的時候就可以設定數據為info:name=zhangsan 的形式進行存儲,當要添加屬性的時候直接使用info:**=**進行添加就行 3、擴展性:底層存儲依賴HDFS,擁有可擴展性,而且HBase的Region和RegionServer的概念可以進行分區且分區後數據不在一個節點上,也決定了Hbase是可以進行擴展操作的。Hbase的擴展是熱擴展,即可以以便進行的服務一邊對節點進行操作 4、高可靠性:主要在三個方面保證了Hbase中的數據的穩定,第一就是Hbase本身就提供了WAL和Replication兩種機制,WAL保證了數據寫入的時候不會因為集群的原因造成數據的丟失,Replication保證了當集群出現問題的時候也不會對其中的數據產生影響,第二、Hbase底層使用的是HDFS的機制,HDFS本身就擁有副本機制,傳入的數據會在不同的節點上進行相應的備份,第三、Hbase使用zookeeper組件進行協調服務,erzookeeper本身就具有高可用和高可靠兩種特性 5、高性能:底層的LSM(內存+順序寫磁盤)的數據結構以及列族的存儲方式決定了在寫方面HBase擁有非常高的性能,region切分、主鍵索引和緩存機制讓Hbase在隨機讀取方面也有不錯的展現。 Hbase的適應場景; Hbase雖然提供了一個強大的存儲機制用來對數據進行存儲,但是,事物都是兩面性的,在某一些場合也是不使用Hbase的,在官方網站上,對於以下幾個方面做出了不適應於使用Hbase進行存儲的解釋 1、數據量的大小:Hbase和關系型數據庫的區別就在於存儲數據的大小,當數據量不是很大的時候,使用傳統的RDBMS可能是一個更好的選擇,因為當數據量不是很大的時候使用Hbase 會使集群中產生資源浪費的情況,只是單純的一到兩個節點上就把所有的數據處理完了 2、確保有足夠的硬件支持:即使是搭建一個最簡單的集群也至少需要3個節點(雖然可以進行調整,但是HDFS的備份機制默認的節點個數為3個),所以,要想使用Hbase對數據進行存儲要考慮一下自己的硬件是否能夠對其進行支持 3、確保應用程序可以在Hbase下能夠生存下來,因為通過RDBMS進行構建的應用程序不是簡單的更改就可以移植到Hbase上的,比如JDBC驅動程序就無法進行移植以及復雜的查詢語言等都在HBase中不能被使用,所以要確定可以在沒有 RDBMS提供所有額外功能的情況下生存

如需交流,請加入QQ群:859121793

Hadoop(4)--Hbase