HBase的讀寫和javaAPI的使用

一、hbase系統管理表

hbase:namespace,記錄了hbase中所有namespace的信息 ,當前系統下有哪些namespace信息

scan 'hbase:namespace'

HBase的讀寫和javaAPI的使用

hbase:meta,記錄了region信息

scan 'hbase:meta'

HBase的讀寫和javaAPI的使用

二、讀寫思想

client(get、scan)

rowkey條件

(1)由於rowkey是存儲在region上的

(2)判斷rowkey在哪個region上

(3)找到region在哪臺regionserver上

(4)首先會去meta表中讀取信息,找到regionserver

meta也是一張表,也有region和regionserver

desc hbase:meta

HBase的讀寫和javaAPI的使用

在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項目

HBase的讀寫和javaAPI的使用

在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的讀寫和javaAPI的使用

創建運行類

HBase的讀寫和javaAPI的使用

最終需要導入的包

HBase的讀寫和javaAPI的使用

創建以下方法

HBase的讀寫和javaAPI的使用

完成表創建

在hbase-site.xml中的配置信息

HBase的讀寫和javaAPI的使用

編寫方法

HBase的讀寫和javaAPI的使用

運行代碼

HBase的讀寫和javaAPI的使用

HBase的讀寫和javaAPI的使用

在hbase中查看,命名空間已經創建了

HBase的讀寫和javaAPI的使用

創建表

HBase的讀寫和javaAPI的使用

運行下代碼

HBase的讀寫和javaAPI的使用

查看下

HBase的讀寫和javaAPI的使用

為了後續方便,我們更改下代碼

HBase的讀寫和javaAPI的使用

將之前的代碼做一下變化(代碼)

HBase的讀寫和javaAPI的使用

運行測試

HBase的讀寫和javaAPI的使用

刪除表(代碼)

HBase的讀寫和javaAPI的使用

運行查看下,表已刪除

HBase的讀寫和javaAPI的使用

添加(代碼)

HBase的讀寫和javaAPI的使用

運行查看下(新創建了一個空間和表格),數據已添加

HBase的讀寫和javaAPI的使用

刪除數據(代碼)

HBase的讀寫和javaAPI的使用

下面這種是篩選刪除

HBase的讀寫和javaAPI的使用

運行查看,數據已空

HBase的讀寫和javaAPI的使用

數據查詢(代碼)註釋部分為篩選

HBase的讀寫和javaAPI的使用

結果查看(控制檯)

HBase的讀寫和javaAPI的使用

Scan查看(代碼)註釋部分為篩選

HBase的讀寫和javaAPI的使用

結果查看

HBase的讀寫和javaAPI的使用


分享到:


相關文章: