HBase的簡單介紹,尋址過程,讀寫過程


HBase是列族數據庫,主要由,表,行鍵,列族,列標識,值,時間戳 組成,

 

      表       其中HBase 主要底層存儲依賴與hdfs,可以在HDFS中看到每個表名都作為一個獨立的目錄結構

      行       每一行都已行鍵作為唯一表示,是不可分割的字節數組,在HBase內部主要以行鍵由低到高存儲在表中

      列族       一些列的集合,用戶在插入數據的時候必須確定列族,在內部以字符串格式進行存儲

      列標識     用以表示指定的列, 存儲方式二進制

      值       在HBase 中 以指定的  列族 列表示,行鍵 來確定唯一的 單元格, 值以二進制方式存儲,里面可保存多個版本,最新的數據排在最前面

      時間戳     默認情況下 每一個單元格插入數據時,都會用時間戳進行標識,若時間戳未指定,則插入最新數據,查詢時也是如此,其中默認保存3個版本數據

 

      尋址過程

      在上面說了,每一行 都以行鍵(RowKey)排序, 如果數據量較大,這些數據就會在 行的方向上進行划分

      划分為多個Region,當表中的Region 越來越多時,多到無法存儲在一台機器上時, Master主服務器就會把不同的Region分配到不同的Region 的服務器上

      但RowKey相同的Region不會被拆分到 不同Region 服務器上,通常每個Region 服務器會放置10~1000個Region, 當查詢數據時,將開始Region定位

      每個Region 都這三個要素組成,Region 所屬的表,第一行,最后一行 每個Region 都有個RegionID來標識其唯一性

      Region 標識符表示為 表名+開始行鍵+RegionID

      Meta表 中存了 Region 與 Region標識符之間的對應關系,可以用scan命令查看Mate表的結構,當數據表特別大時,mate也需要分區,記錄Region

         

      Region 定位,

    客戶端,通過Zookeeper 獲取Meta表分區存儲的地址,所需的行鍵Region信息,然后從Region 服務器上找到所需的數據。一般獲取信息后會緩存,使用戶不必從ZooKeeper 開始尋址。

 

      讀寫過程

        Region服務器主要 有  HLog 和Region 塊組成,HLog 主要,記錄Region 的操作日志,

    Region 對象主要由多個Store 組成 每個store對應當前分區的 一個列族,並且管理一塊內存,即MemStroe

    當MemStore 中的數據達到一定條件,會寫入StoreFile文件中,每個Store 包含若干StoreFile 文件 StoreFile 對應HDFS中,Hfile文件

   

MemStore    HBase 將數據緩存在其中,持久化到HDFS中完成排序,在順序寫入HDFS中

Store 隨着數據量增加 storefile文件數量也在增加,當數量達到一定程度的時候,會合並成一個大的StoreFile文件,隨着文件不斷合並,Region也會不斷變大這樣會促使Region進行分裂

      Region 一個父Region 會分裂成兩個子 Region  會被Master 分配到相應的Region 服務器上

      Hlog 如果MemStore 上數據丟失 可以從HLog上恢復

     

      寫入過程,

1.客戶端訪問ZookKeeper 從Mate表中得到寫入數據對應的Region信息,和相應的Region 服務器

2客戶端訪問 Region服務器,將數據寫入HLog和MemStore中,當MemStore 達到閾值后 將數據寫入 StoreFile中,再在HLog中打上一個標記,表示已經寫入
3.當多個StoreFile文件達到閾值后 觸發Store.compact()將文件進行合並.

 

讀取過程

1.客戶端訪問Zookeeper 從Mate表中讀取Region信息對應的服務器

      2.客戶端向對應的Region服務器發送讀數據的請求,Region接受請求后 從MemStore中查找數據,若沒有,再從StoreFile讀取,然后再將數據返回給客戶端。

 

 

本內容總結於 上課老師所講內容,以及摘錄自NoSql數據庫原理及應用  有錯誤之處,大家指正批評。

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM