Hbase原理
Hbase 寫資料流程
- 1、 client 向 hregionserver 傳送寫請求。
- 2、hregionserver 將資料寫到 hlog (write ahead log )。為了資料的持久化和恢復。
- 3、 hregionserver 將資料寫到記憶體 (memstore)
- 4、 反饋 client 寫成功。
資料 flush 過程
- 1、 當 memstore 資料達到閾值(預設是 64M),將資料刷到硬碟,將記憶體中的資料刪除,同時刪除 hlog 中的歷史資料。
- 2、 並將資料儲存到 hdfs 中。
- 3、 在 hlog 中做標記點。
資料合併過程
- 1、 當資料達到 4 塊, hmaster 將資料塊載入到本地,進行合併
- 2、 當合並的資料超過 256M,進行拆分,將拆分後的 region 分配給不同的 hregionserver 管理
- 3、 當 hregionser 當機後,將 和regionserver 上的 hlog 拆分,然後分配給不同的 hregionserver 載入,修改 .META。
- 4、 注意:hlog 會同步到 hdfs
Hbase 讀資料流程
- 1、 通過 zookeeper 和 -ROOT-.META。表定位 hregionserver 。
- 2、 資料從記憶體和硬碟合併後返回 client
- 3、 資料塊會快取
hmaster 的職責
- 1、 管理使用者對 table 的增、刪、改、查等操作。
- 2、 記錄 region 在哪臺 HRegion Server 上
- 3、 在 Region Split 後,負責新 Region 的分配
- 4、 新機器加入時,管理 HRegion Server 的負載均衡,調整 Region 分佈
- 5、 在 HRegion Server 當機後,負責失效 HRegion Server 上的 Region 遷移。
hmaster 的職責
- 1、 HRegion Server主要負責響應使用者I/O請求,向HDFS檔案系統中讀寫資料,是HBASE中最核心的模組。
- 2、 HRegion Server管理了很多table的分割槽,也就是region。
client職責
- 1、 HBASE Client使用HBASE的RPC機制與HMaster和RegionServer進行通訊
- 2、 管理類操作:Client與HMaster進行RPC;
- 3、 資料讀寫類操作:Client與HRegionServer進行RPC。
hbase依賴zookeeper
1、儲存Hmaster的地址和backup-master地址
hmaster:
- a)管理HregionServer
- b)做增刪改查表的節點
- c)管理HregionServer中的表分配
2、儲存表-ROOT-的地址
hbase預設的根表,檢索表。
3、HRegionServer列表
表的增刪改查資料。
和hdfs互動,存取資料。
Hbase 命令
名稱 | 命令表示式 |
---|---|
建立表 | create `表名`, `列族名1`,`列族名2`,`列族名N` |
檢視所有表 | list |
描述表 | describe ‘表名’ |
判斷表存在 | exists `表名` |
判斷是否禁用啟用表 | is_enabled `表名`; is_disabled ‘表名’ |
新增記錄 | put ‘表名’, ‘rowKey’, ‘列族 : 列‘ ,`值` |
檢視記錄rowkey下的所有資料 | get `表名`,`rowKey` |
檢視錶中的記錄總數 | count `表名` |
獲取某個列族 | get `表名`,`rowkey`,`列族` |
獲取某個列族的某個列 | get `表名`,`rowkey`,`列族:列’ |
刪除記錄 | delete ‘表名’ ,‘行名’ , ‘列族:列` |
刪除整行 | deleteall `表名`,`rowkey` |
刪除一張表 | 先要遮蔽該表,才能對該表進行刪除。第一步 disable ‘表名’ ,第二步 drop `表名` |
清空表 | truncate `表名` |
檢視所有記錄 | scan “表名” |
檢視某個表某個列中所有資料 | scan “表名” , {COLUMNS=>`列族名:列名`} |
更新記錄 | 就是重寫一遍,進行覆蓋,hbase沒有修改,都是追加 |
到這裡 hbase 的基本原理,和使用命令就寫完了。
本文轉自 SimplePoint 51CTO部落格,原文連結:http://blog.51cto.com/2226894115/2061521,如需轉載請自行聯絡原作者
相關文章
- 深入HBase架構原理架構
- HBase的基本原理
- NoSQL 複習 (二)HBase基本原理SQL
- Hbase原理的介紹和使用場景分析
- HBase 事務和併發控制機制原理
- 如何理解Hadoop-Hbase原理與應用小結Hadoop
- ZooKeeper 原理及其在 Hadoop 和 HBase 中的應用Hadoop
- HBase -ROOT-和.META.表結構(region定位原理)
- Hbase(二)Hbase常用操作
- 如何正確管理HBase的連線,從原理到實戰
- HBase高效能隨機查詢之道 – HFile原理解析隨機
- HBase 教程:什麼是 HBase?
- HBase篇--HBase常用優化優化
- hbase - [04] java訪問hbaseJava
- HBase
- HBase篇--HBase操作Api和Java操作Hbase相關ApiAPIJava
- HBase 系列(五)——HBase常用 Shell 命令
- Hbase單機部署 java連線HbaseJava
- Hbase篇--Hbase和MapReduce結合ApiAPI
- hbase之 Hbase shell 常用命令
- HBase框架框架
- HBase初探
- HBase篇--搭建HBase完全分散式叢集分散式
- 分散式儲存系統,HBase的基本原理與基本架構分散式架構
- 大資料之 ZooKeeper原理及其在Hadoop和HBase中的應用大資料Hadoop
- hbase與phoenix整合(使用phoenix操作hbase資料)
- HBase實操:HBase-Spark-Read-Demo 分享Spark
- HBase學習之二: hbase分頁查詢
- Hbase優化優化
- HBase學習
- spark與hbaseSpark
- HBase 基本操作
- HBase進階
- php使用hbasePHP
- hbase shell命令
- Hbase VS OracleOracle
- HBase簡介
- NoSQL之HBaseSQL