一、hbase系統管理表
hbase:namespace,記錄了hbase中所有namespace的信息 ,當前系統下有哪些namespace信息
scan 'hbase:namespace'
hbase:meta,記錄了region信息
scan 'hbase:meta'
二、讀寫思想
client(get、scan)
rowkey條件
(1)由於rowkey是存儲在region上的
(2)判斷rowkey在哪個region上
(3)找到region在哪臺regionserver上
(4)首先會去meta表中讀取信息,找到regionserver
meta也是一張表,也有region和regionserver
desc hbase:meta
在zookeeper中存儲了meta表的region信息,可以到zookeeper客戶端上去看
讀的流程
(1)根據表名和rowkey(start-end範圍)找到對應的region
(2)在zookeeper中存儲了meta表的region信息
(3)從meta表中獲取相應的region信息
(4)找到對應的regionserver
(5)找到對應的region
寫的流程
(1)根據表名和rowkey(start-end範圍)找到對應的region
(2)在zookeeper中存儲了meta表的region信息
(3)從meta表中獲取相應的region信息
(4)找到對應的regionserver(不是直接往region上寫的,先寫到wal再寫到memstore)
WAL(預寫日誌)
memstore(內存中)滿了後會flush成storefile
(5)當多個storefile達到一定大小以後,會進行compaction,合併一個大的storefile
(6)當大的storefile達到一定大小以後,會進行split,等分新的region
三、hbase Java API
啟動Eclipse,創建Maven項目
在pom.xml中添加hbase依賴
<code> <dependency>/<code>
<code> <groupid>org.apache.hbase/<groupid>/<code>
<code> <artifactid>hbase-server/<artifactid>/<code>
<code> <version>1.2.1/<version>/<code>
<code> /<code>
<code>
<code> <dependency>/<code>
<code> <groupid>org.apache.hbase/<groupid>/<code>
<code> <artifactid>hbase-client/<artifactid>/<code>
<code> <version>1.2.1/<version>/<code>
<code> /<code>
創建運行類
最終需要導入的包
創建以下方法
完成表創建
在hbase-site.xml中的配置信息
編寫方法
運行代碼
在hbase中查看,命名空間已經創建了
創建表
運行下代碼
查看下
為了後續方便,我們更改下代碼
將之前的代碼做一下變化(代碼)
運行測試
刪除表(代碼)
運行查看下,表已刪除
添加(代碼)
運行查看下(新創建了一個空間和表格),數據已添加
刪除數據(代碼)
下面這種是篩選刪除
運行查看,數據已空
數據查詢(代碼)註釋部分為篩選
結果查看(控制檯)
Scan查看(代碼)註釋部分為篩選
結果查看
閱讀更多 分享電腦學習 的文章