hbase簡介
1) hbase定義
hbase是一種分布式、面向列的開源資料庫。、具有良好的擴充套件性、低寫入/查詢延遲的特點。
2)hbase與傳統的關聯式資料庫的區別:
hbase
rdb
資料型別
簡單的,儲存為未經解釋的字串
豐富的資料型別和儲存方式
資料操作
只有簡單的插入、查詢、刪除和清空等
豐富的操作,如:多表連線
儲存模式
基於列儲存
基於行模式
資料索引
只有行鍵索引
多個索引
資料維護
生成新版,舊版仍保留
新值會替換舊值
可伸縮性
可擴充套件性強
很難擴充套件
3)hbase的功能元件
l 庫函式:鏈結到每個客戶端
l 乙個master主伺服器
l 許多個region伺服器
hbase的三層結構
4)hbase架構
region伺服器工作原理
— region伺服器是hbase中最核心的模組,負責維護分配給自己的region,並響應使用者的讀寫請求
a. 使用者讀寫資料過程
使用者寫入資料時,被分配到相應region伺服器去執行
使用者資料首先被寫入到memstore和hlog中
只有當操作寫入hlog之後,commit()呼叫才會將其返回給客戶端
當使用者讀取資料時,region伺服器會首先訪問memstore快取,如果找不到,再去磁碟上面的storefile中尋找
b. 快取的重新整理
系統會周期性地把memstore快取裡的內容刷寫到磁碟的storefile檔案中,清空快取,並在hlog裡面寫入乙個標記
每次刷寫都生成乙個新的storefile檔案,因此,每個store包含多個storefile檔案
每個regiom伺服器都有乙個自己的hlog檔案,每次啟動都檢查該檔案,確認最後一次執行快取重新整理操作之後是否發生新的寫入操作
c. storrefile的合併
每次刷寫都生成乙個新的storefile,數量太多,影響查詢速度
呼叫store.compact()把多個合併成乙個
合併操作比較耗費資源,只有數量達到乙個閾值才啟動
Hbase 學習筆記 Hbase 概覽
hbase構建在 hdfs 之上,hbase內部管理的檔案全部儲存在hdfs 中 行鍵,table的主鍵,table中的記錄按照row key排序。型別為byte array 列簇,table在水平方向有乙個或者多個column family組成,乙個column family中可以由任意多個col...
Hbase學習筆記
1.table中行是按照row key的字典序排列的 2.在行的方向上分隔為多個region 3.hregion是hbase 中分布式儲存和負載均衡的最小單位,這表示不同的region可以分布在不同的regionserver上 當乙個region足夠大時,現在是256m 就會split,乙個regi...
HBase 學習筆記
1.hbase是乙個高可靠 高效能 面向列 可伸縮的構建在hdfs上的分布式資料庫 2.hbase通過行鍵 列族 列限定符 時間戳來確定乙個單元格 3.傳統行式儲存用於處理事務性操作,列式儲存主要用於資料分析型業務 4.乙個hbase表會被分成多個regin,同乙個regin不會被到多個regin伺...