【云小課】EI第25課 MRS基礎入門之HBase組件介紹

      網友投稿 675 2025-04-01

      HBase是一個開源的、面向列(Column-Oriented)、適合存儲海量非結構化數據或半結構化數據的、具備高可靠性、高性能、可靈活擴展伸縮的、支持實時數據讀寫的分布式存儲系統。

      存儲在HBase中的表的典型特征:

      大表(BigTable):一個表可以有上億行,上百萬列

      面向列:面向列(族)的存儲、檢索與權限控制

      稀疏:表中為空(null)的列不占用存儲空間

      HBase結構

      【云小課】EI第25課 MRS基礎入門之HBase組件介紹

      HBase主要由主備Master進程和多個RegionServer進程組成。

      名稱

      描述

      Master

      又叫HMaster,在HA模式下,包含主用Master和備用Master。

      主用Master:負責HBase中RegionServer的管理,包括表的增刪改查;RegionServer的負載均衡,Region分布調整;Region分裂以及分裂后的Region分配;RegionServer失效后的Region遷移等。

      備用Master:當主用Master故障時,備用Master將取代主用Master對外提供服務。故障恢復后,原主用Master降為備用。

      Client

      Client使用HBase的RPC機制與Master、RegionServer進行通信。Client與Master進行管理類通信,與RegionServer進行數據操作類通信。

      RegionServer

      RegionServer負責提供表數據讀寫等服務,是HBase的數據處理和計算單元。

      RegionServer一般與HDFS集群的DataNode部署在一起,實現數據的存儲功能。

      ZooKeeper集群

      ZooKeeper為HBase集群中各進程提供分布式協作服務。各RegionServer將自己的信息注冊到ZooKeeper中,主用Master據此感知各個RegionServer的健康狀態。

      HDFS集群

      HDFS為HBase提供高可靠的文件存儲服務,HBase的數據全部存儲在HDFS中。

      HBase原理

      HBase數據模型

      HBase以表的形式存儲數據,數據模型如下圖所示。表中的數據劃分為多個Region,并由Master分配給對應的RegionServer進行管理。

      每個Region包含了表中一段RowKey區間范圍內的數據,HBase的一張數據表開始只包含一個Region,隨著表中數據的增多,當一個Region的大小達到容量上限后會分裂成兩個Region。您可以在創建表時定義Region的RowKey區間,或者在配置文件中定義Region的大小。

      名稱

      描述

      RowKey

      行鍵,相當于關系表的主鍵,每一行數據的唯一標識。字符串、整數、二進制串都可以作為RowKey。所有記錄按照RowKey排序后存儲。

      Timestamp

      每次數據操作對應的時間戳,數據按時間戳區分版本,每個Cell的多個版本的數據按時間倒序存儲。

      Cell

      HBase最小的存儲單元,由Key和Value組成。Key由row、column family、column qualifier、timestamp、type、MVCC version這6個字段組成。Value就是對應存儲的二進制數據對象。

      Column Family

      列族,一個表在水平方向上由一個或多個Column Family組成。一個CF(Column Family)可以由任意多個Column組成。Column是CF下的一個標簽,可以在寫入數據時任意添加,因此CF支持動態擴展,無需預先定義Column的數量和類型。HBase中表的列非常稀疏,不同行的列的個數和類型都可以不同。此外,每個CF都有獨立的生存周期(TTL)。可以只對行上鎖,對行的操作始終是原始的。

      Column

      列,與傳統的數據庫類似,HBase的表中也有列的概念,列用于表示相同類型的數據。

      RegionServer數據存儲

      RegionServer主要負責管理由HMaster分配的Region,RegionServer的數據存儲結構如下所示。

      名稱

      描述

      Store

      一個Region由一個或多個Store組成,每個Store對應圖1-2中的一個Column Family。

      MemStore

      一個Store包含一個MemStore,MemStore緩存客戶端向Region插入的數據,當RegionServer中的MemStore大小達到配置的容量上限時,RegionServer會將MemStore中的數據“flush”到HDFS中。

      StoreFile

      MemStore的數據flush到HDFS后成為StoreFile,隨著數據的插入,一個Store會產生多個StoreFile,當StoreFile的個數達到配置的最大值時,RegionServer會將多個StoreFile合并為一個大的StoreFile。

      HFile

      HFile定義了StoreFile在文件系統中的存儲格式,它是當前HBase系統中StoreFile的具體實現。

      HLog

      HLog日志保證了當RegionServer故障的情況下用戶寫入的數據不丟失,RegionServer的多個Region共享一個相同的HLog。

      元數據表

      元數據表是HBase中一種特殊的表,用來幫助Client定位到具體的Region。元數據表包括“hbase:meta”表,用來記錄用戶表的Region信息,例如,Region位置、起始RowKey及結束RowKey等信息。元數據表和用戶表的映射關系如下圖所示。

      數據操作流程

      對HBase進行增、刪、改、查數據操作時,HBase Client首先連接ZooKeeper獲得“hbase:meta”表所在的RegionServer的信息(涉及namespace級別修改的,比如創建表、刪除表需要訪問HMaster更新meta信息)。

      HBase Client連接到包含對應的“hbase:meta”表的Region所在的RegionServer,并獲得相應的用戶表的Region所在的RegionServer位置信息。

      HBase Client連接到對應的用戶表Region所在的RegionServer,并將數據操作命令發送給該RegionServer,RegionServer接收并執行該命令從而完成本次數據操作。

      HBase操作示例

      在華為云MRS集群中,您可以通過連接HBase客戶端實現創建表,往表中插入數據,修改表,讀取表數據,刪除表中數據以及刪除表的功能。

      MRS集群的創建可參考創建集群。

      安裝集群客戶端后,登錄客戶端。

      cd /opt/client/ source bigdata_env kinit hbaseuser #集群未開啟Kerberos認證忽略

      執行命令進入HBase Shell。

      hbase shell hbase:001:0> hbase:002:0>

      在HBase中創建一個表并寫入數據,例如創建一個學生信息表。

      create 'student_info',{NAME => 'i'} put 'student_info','2021001','i:name','xiaoming' put 'student_info','2021001','i:age','15' put 'student_info','2021001','i:address','shenzhen' put 'student_info','2021002','i:name','xiaohong' put 'student_info','2021002','i:age','16'

      執行命令查詢某學生的數據。

      scan'student_info',{STARTROW=>'2021001',STOPROW=>'2021001',COLUMNS=>['i:name','i:address']} ROW COLUMN+CELL 12005000201 column=i:name, timestamp=2021-06-22T21:32:05.638, value=xiaoming 1 row(s)

      刪除某個表。

      disable'student_info' drop 'student_info'

      好了,本期云小課就介紹到這里,快去體驗MapReduce(MRS)更多功能吧!猛戳這里

      HBase MapReduce 云小課

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:瘋狂Java之學習筆記(29)-----------static
      下一篇:如何將圖片固定,讓其不隨文字的改變和編輯而移動(word圖片如何隨著文字編輯移動)
      相關文章
      国产亚洲精品国产| 亚洲人成网77777色在线播放| 国产亚洲精品AA片在线观看不加载 | 亚洲福利秒拍一区二区| 亚洲精品免费在线观看| 亚洲v高清理论电影| 亚洲一区二区三区首页| 亚洲精品私拍国产福利在线| 亚洲国语精品自产拍在线观看 | 亚洲avav天堂av在线网毛片| 亚洲狠狠婷婷综合久久| 亚洲丁香婷婷综合久久| 亚洲AV无码国产精品永久一区| 欧美日韩亚洲精品| 无码专区一va亚洲v专区在线| 亚洲国产精品综合久久网络| 亚洲欧洲久久av| 久久综合亚洲色HEZYO国产| 亚洲中文字幕久久精品无码喷水| 亚洲综合色自拍一区| 亚洲人成无码网站| 久久亚洲国产伦理| 亚洲黄色网址大全| 亚洲一区二区三区免费视频| 亚洲人成www在线播放| 亚洲精品成a人在线观看夫| 风间由美在线亚洲一区| 亚洲一级特黄大片无码毛片| 亚洲永久无码3D动漫一区| 亚洲VA中文字幕无码一二三区| 亚洲AV成人无码久久精品老人| 亚洲综合视频在线| 亚洲人成片在线观看| 亚洲日本成本人观看| 337p日本欧洲亚洲大胆人人 | 无码专区一va亚洲v专区在线| 国产亚洲情侣一区二区无| 久久综合九九亚洲一区| 亚洲视频手机在线| 亚洲中文字幕AV每天更新| 无码一区二区三区亚洲人妻|