Hbase常用命令

2021-07-15 20:20:31 字數 4693 閱讀 9851

**

一般操作:

-----

**hbase(main)> status

hbase(main)> version

建立命名空間: namespace指的是乙個 表的邏輯分組 ,同一組中的表有類似的用途,相當於關係型資料庫中的database。

hbase(main):060:0> create_namespace 'test1'

drop_namespace

建立該命名空間的表:

hbase(main):061:0> create 'test1:test','f1','f2'

create 'scores',

1)檢視有哪些表 list describe

hbase(main)> list

hbase(main)> describe 'member'

2)建立表 create 只建立列族就可,put資料時直接

# 語法:create ,

# 例如:建立表t1,有兩個family name:f1,f2,且版本數均為2

hbase(main)> create 't1',,

3)刪除表

分兩步:首先disable,然後drop

例如:刪除表t1

hbase(main)> disable 't1'

hbase(main)> drop 't1'

4)檢視表的結構

# 語法:describe

# 例如:檢視表t1的結構

hbase(main)> describe 't1'

5)修改表結構 alter

修改表結構必須先disable

alter 't1',

# 語法:alter 't1', ,

# 例如:修改表test1的cf的ttl為180天

hbase(main)> disable 'test1'

hbase(main)> alter 'test1',,

hbase(main)> enable 'test1'

6)新增資料 put

# 語法:put ,,,,

# 例如:給表t1的新增一行記錄:rowkey是rowkey001,family name:f1,column name:col1,value:value01,timestamp:系統預設

hbase(main)> put 't1','rowkey001','f1:col1','value01'

用法比較單一。

7)查詢資料

a)查詢某行記錄 get

# 語法:get ,,[,....]

查詢rowkey001一行下的所有列值:

hbase(main)> get 't1','rowkey001'

# 例如:查詢表t1,rowkey001行,f1:col1列

hbase(main)> get 't1','rowkey001', 'f1:col1'

# 或者:

hbase(main)> get 't1','rowkey001',

b)掃瞄表

# 語法:scan ,

# 另外,還可以新增startrow、timerange和fitler等高階功能

# 例如:掃瞄表t1的前5條資料

hbase(main)> scan 't1',

test1空間下的test表的columns=f1的所有行

hbase(main)> scan 'test1:test',

test1空間下的test表的columns=f1的第1行

hbase(main)> scan 'test1:test',

scan 'scores', version<=2

scan 'scores',

c)查詢表中的資料行數 count

# 語法:count ,

# interval設定多少行顯示一次及對應的rowkey,預設1000;cache每次去取的快取區大小,預設是10,調整該引數可提高查詢速度

# 例如,查詢表t1中的行數,每100條顯示一次,快取區為500

hbase(main)> count 't1',

8)刪除資料

a )刪除行中的某個列值 delete

# 語法:delete , , , ,必須指定列名

# 例如:刪除表t1,rowkey001中的f1:col1的資料

hbase(main)> delete

't1','rowkey001','f1:col1'

注:將刪除改行f1:col1列所有版本的資料

b )刪除行 deleteall

# 語法:deleteall , , , ,可以不指定列名,刪除整行資料

# 例如:刪除表t1,rowk001的資料

hbase(main)> deleteall 't1','rowkey001'

c)刪除表中的所有資料 truncate

# 語法: truncate

# 其具體過程是:disable table -> drop table -> create table

# 例如:刪除表t1的所有資料

hbase(main)> truncate 't1'

9)檢查表是否存在 exists

hbase(main):019:0> exists 't1'

10)檢視表是否可用 is_enabled

hbase(main):036:0> is_enabled 't1'

help

hbase(main)> create help

11).判斷表是否enable

hbase(main):034:0>is_enabled 'member'

**過濾器:**

--------

0.所有的過濾器都在服務端生效

1.顯示所有過濾器

hbase(main):010:0> show_filters

2.只返回key及其他關鍵部分

scan 'airline',

3.只返回每一行的第乙個值

scan 'airline',

4.過濾rowkey 需要輸入rowkey的字首

scan 'airline',

5.過慮qualifier,需要輸入qualifier字首

scan 'airline',

6.多重過濾qualifier,需要輸入qualifier字首

scan 'airline',

7.返回該表中相應的qualifier數

scan 'airline',

8.返回多少行

scan 'airline',

9.掃瞄到哪一行停止

scan 'airline',

10.只返回有指定qualifier的資料

scan 'airline', > = 《來替換『=』

11.返回滿足條件(某一列的值)的資料

scan 'airline', > = 《來替換『=』

行的最大版本是通過 hcolumndescriptor定義在每乙個列族的,預設的最大版本號是1

**

建表語句詳解:

-------

**create 'testtable',,

(其中的屬性有 replication_scope 複製份數 ,只包含乙個列簇「toutiao」,versions:設定歷史版本數 預設為1,ttl:過期時間 單位為秒,預設為永久儲存,compression:壓縮方式,當配置lzo的情況)

bloomfilter

布隆過濾器,優化hbase的隨即讀取效能,可選值none|row|rowcol,預設為none,該引數可以單獨對某個列簇啟用。啟用過濾器,對於get操作以及部分scan操作可以剔除掉不會用到的儲存檔案,減少實際io次數,提高隨機讀效能。row型別適用於只根據row進行查詢,而rowcol型別適用於根據row+col聯合查詢,如下:

row型別適用於:get 『newsclickfeedback』,』row1′

rowcol型別適用於:get 『newsclickfeedback』,』row1′,

對於有隨機讀的業務,建議開啟row型別的過濾器,使用空間換時間,提高隨機讀效能。

compression

in_memory

資料是否常駐記憶體,預設為false。hbase為頻繁訪問的資料提供了乙個快取區域,快取區域一般儲存資料量小、訪問頻繁的資料,常見場景為元資料儲存。預設情況,該快取區域大小等於jvm heapsize * 0.2 * 0.25 ,假如jvm heapsize = 70g,儲存區域的大小約等於3.2g。需要注意的是hbase meta元資料資訊儲存在這塊區域,如果業務資料設定為true而且太大會導致meta資料被置換出去,導致整個集群效能降低,所以在設定該引數時需要格外小心。

blockcache

是否開啟block cache快取,預設開啟。

ttl資料過期時間,單位為秒,預設為永久儲存。對於很多業務來說,有時候並不需要永久儲存某些資料,永久儲存會導致資料量越來越大,消耗儲存空間是其一,另一方面還會導致查詢效率降低。如果設定了過期時間,hbase在compact時會通過一定機制檢查資料是否過期,過期資料會被刪除。使用者可以根據具體業務場景設定為乙個月或者三個月。示例中ttl => 『 259200』設定資料過期時間為三天,以最後一次更新時間為開始時間(ttl=>的更新超時時間是指:該列最後更新的時間,到超時時間的限制,而不是第一次建立,到超時時間。)

hbase常用命令

建立表 create 表名 列族名1 列族名2 列族名n 例子 create user info1 info2 檢視所有表 list 描述表 describe 表名 判斷表存在 exists 表名 判斷是否禁用啟用表 is enabled 表名 is disabled 表名 新增記錄 put 表名 ...

hbase 常用命令

使用 hbase shell 命令來啟動hbase的互動shell bin hbase shell 退出 shell hbase main 021 0 exit 建立表 create emp personal data professional data list 列出所有表。禁用表 disable...

hbase常用命令

hbase shell命令 描述 alter 修改列族 column family 模式 count 統計表中行的數量 create 建立表describe 顯示表相關的詳細資訊 delete 刪除指定物件的值 可以為表,行,列對應的值,另外也可以指定時間戳的值 deleteall 刪除指定行的所有...