??① HBase 是以hdfs為數據存儲,一個面向列式存儲的分布式 可擴展的非關系型(NoSQL)數據庫 。
?② HBase非常適合于對海量數據進行實時隨機讀寫
?海量數據存儲:
?上百億行 x 上百萬列 并沒有列的限制
?當表非常大的時候才能發(fā)揮這個作用, 最多百萬行的話,沒有必要放入hbase 中
?準實時查詢:
?百億行 x 百萬列,在百毫秒以內
?③
優(yōu)點:
??容量大:
?傳統(tǒng)關系型數據庫,單表不會超過五百萬,超過要做分表分庫,不會超過30列
??Hbase單表可以有百億行、百萬列,數據矩陣橫向和縱向兩個維度所支持的數據量級都非常具有彈性
??面向列:
??面向列的存儲和權限控制,并支持獨立檢索,可以動態(tài)增加列,即可單獨對列進行各方面的操作
??列式存儲,其數據在表中是按照某列存儲的,這樣在查詢只需要少數幾個字段的時候,能大大減少讀取的數量
??多版本:
??Hbase的每一個列的數據存儲有多個Version,比如住址列,可能有多個變更,所以該列可以有多個version
??稀疏性:
為空的列并不占用存儲空間,表可以設計的非常稀疏
??拓展性:
??底層依賴HDFS,當磁盤空間不足的時候,只需要動態(tài)增加datanode節(jié)點服務(機器)就可以了
??高可靠性:
??WAL機制,保證數據寫入的時候不會因為集群異常而導致寫入數據丟失Replication機制,保證了在集群出現(xiàn)嚴重的問題時候,數據不會發(fā)生丟失或者損壞
Hbase底層使用HDFS,本身也有備份
??缺點
??數據分析是HBase的弱項,因為它基本不支持表的關聯(lián),group by或order by的實現(xiàn)非常復雜。
??(1)Name Space: 命名空間 相當于Mysql的數據庫(database)
??(2)Table:HBase 定義表時只需要聲明列族即可,不需 要聲明具體的列。因為數據存儲時稀疏的,所有往 HBase寫入數據時,字段可以動態(tài)、按需指定
??(3)Row:每行數據都由一個 RowKey 和多個 Column(列)組成,數據是按照 RowKey 的字典順序存儲的,
并且查詢數據時只能根據 RowKey 進行檢索,所以 RowKey 的設計十分重要
??(4)Column:HBase 中的每個列都由 Column Family(列族)和 Column Qualifier(列限定符)進行限定
??(5)Time Stamp :用于標識數據的不同版本(version),每條數據寫入時,系統(tǒng)會自動為其加上該字段,其值為寫入 HBase 的時間
??(6)由{rowkey, column Family:column Qualifier, timestamp} 唯一確定的單元。cell 中的數據全部是字節(jié)碼形式存貯。
Backup Master103 是備用 Master,也是可靠性的體現(xiàn)
架構角色:
?1)Master
?實現(xiàn)類為 HMaster,負責監(jiān)控集群中所有的 RegionServer 實例。主要作用如下:
??(1)管理元數據表格 hbase:meta,接收用戶對表格創(chuàng)建修改刪除的命令并執(zhí)行
??(2)監(jiān)控 region 是否需要進行負載均衡,故障轉移和 region 的拆分。
?通過啟動多個后臺線程監(jiān)控實現(xiàn)上述功能:
??①LoadBalancer 負載均衡器
??周期性監(jiān)控 region 分布在 regionServer 上面是否均衡,由參數 hbase.balancer.period 控制周期時間,默認 5 分鐘。
??②CatalogJanitor 元數據管理器
??定期檢查和清理 hbase:meta 中的數據。meta 表內容在進階中介紹。
??③MasterProcWAL master 預寫日志處理器
??把 master 需要執(zhí)行的任務記錄到預寫日志 WAL 中,如果 master 宕機,讓 backupMaster 讀取日志繼續(xù)干。
2)Region Server
?? Region Server 實現(xiàn)類為 HRegionServer,主要作用如下:
??(1)負責數據 cell 的處理,例如寫入數據 put,查詢數據 get 等
??(2)拆分合并 region 的實際執(zhí)行者,有 master 監(jiān)控,有 regionServer 執(zhí)行。
3)Zookeeper
??HBase 通過 Zookeeper 來做 master 的高可用、記錄 RegionServer 的部署信息、并且存儲有 meta 表的位置信息。
??HBase 對于數據的讀寫操作時直接訪問 Zookeeper 的,在 2.3 版本推出 Master Registry模式,客戶端可以直接訪問 master。使用此功能,會加大對 master 的壓力,減輕對 Zookeeper 的壓力。
4)HDFS
??HDFS 為 Hbase 提供最終的底層數據存儲服務,同時為 HBase 提供高容錯的支持。
1)MemStore
??寫緩存,由于HFile中的數據要求是有序的,所以數據是先存儲在MemStore中,排好序后,等到達刷寫時機才會刷寫到HFile,每次刷寫都會形成一個新的HFile,寫入到對應的文件夾store中。
2)WAL
??由于數據要經MemStore排序后才能刷寫到HFile,但把數據保存在內存中會有很高的概率導致數據丟失,為了解決這個問題,數據會先寫在一個叫做Write-Ahead logfile的文件中,然后再寫入MemStore中。所以在系統(tǒng)出現(xiàn)故障的時候,數據可以通過這個日志文件重建。
??讀緩存,每次查詢出的數據會緩存在BlockCache中,方便下次查詢。
??
??(1)HFile結構
??在了解讀流程之前,需要先知道讀取的數據是什么樣子的。
??HFile是存儲在HDFS上面每一個store文件夾下實際存儲數據的文件。里面存儲多種內容。包括數據本身(keyValue鍵值對)、元數據記錄、文件信息、數據索引、元數據索引和一個固定長度的尾部信息(記錄文件的修改情況)。
??鍵值對按照塊大小(默認64K)保存在文件中,數據索引按照塊創(chuàng)建,塊越多,索引越大。每一個HFile還會維護一個布隆過濾器(就像是一個很大的地圖,文件中每有一種key,就在對應的位置標記,讀取時可以大致判斷要get的key是否存在HFile中)。
??由于HFile存儲經過序列化,所以無法直接查看??梢酝ㄟ^HBase提供的命令來查看存儲在HDFS上面的HFile元數據內容。
(2)具體過程
在這里插入圖片描述
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
分享標題:大數據技術之HBase-創(chuàng)新互聯(lián)
路徑分享:http://jinyejixie.com/article44/hgdee.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站建設、網站策劃、虛擬主機、做網站、服務器托管、建站公司
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容