hbase 增刪改查

2021-08-13 10:03:01 字數 3352 閱讀 3682

兩篇可以參考的文章,講的不錯  (

******************************

hbase web操作

訪問位址 http://hmaster:60010,

hmaster的ip配置在$hbase_home/conf/hbase-site.xml中

ip對映成主機名,在env/hosts中配置(在windows系統中的c:\windows\system32\drivers\etc目錄下的hosts檔案中配置)

hbase shell 操作:

進入hbase console:hbase shell

help檢視基本命令集合

list看庫中所有表

status 檢視當前執行伺服器狀態

version 版本號

1)建表

語法:create ,

語句:hbase(main):004:0> exists 'test'

hbase(main):005:0> create 'test','cf'

hbase> create 't1',

hbase> create 't1', , ,

省略模式建立列族

hbase> create 't1', 'f1', 'f2', 'f3'

指定每個列族引數

hbase> create 't1',

hbase> create 't1', 'f1',

hbase> create 't1', 'f1',

hbase> # optionally pre-split the table into numregions, using

hbase> # splitalgo ("hexstringsplit", "uniformsplit" or classname)

hbase> create 't1', 'f1',

設定不同引數,提公升表的讀取效能。

create 'lmj_test',

每個引數屬性都有效能意義,通過合理化的設定可以提公升表的效能

create 'lmj_test',

2)建好表後,檢視表結構:describe 

得出3)清空表:truncate 『lmj_test』

4)刪除表:

分兩步,首先disable 'lmj_test',然後drop 'lmj_test'

5)修改表結構:先disable後enable

alter 't1', ,

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

hbase(main)> disable 'test1'

hbase(main)> alter 'test1',,

hbase(main)> enable 'test1'

6)對錶中記錄的操作(4种行操作)

put 增加一行

put 't1', 'r1', 'c1', 'value', ts1

put 'lmj_test','00001','adn:adn_3','aaa',1432483200000

put 'lmj_test','00001','fixeddim:interest_15','100',1432483200000

get查詢對應資料(可以指定行、列族、列、版本)

get 'lmj_test','000000104257464',

delete 刪除資料

刪除指定行中指定列:

delete , ,  , (必須指定列名,刪除其所有版本資料)

delete 'lmj_test','000000104257464','f1:col1'

刪除整行資料(可不指定列名):

deleteall , ,  ,

deleteall 'lmj_test','000000104257464'

scan 掃瞄全表,指定過濾條件,返回對應行

scan 'lxw_hbase',

其他條件繼續新增在大括號中

以上4個操作類是 org.apache.hadoop.hbase.client的子類,參考官網api檢視詳細資訊

count統計表中記錄數

count 'lxw_hbase',

#每100條顯示一次,快取區為500

7)表操作許可權

給使用者分配對每個表的操作許可權,有rwxca五種,對應read, write, exec, create, admin

grant 'liu_mja','rw','lxw_hbase'    #分配給使用者liu_mja表lxw_hbase的讀寫許可權

還可以 檢視許可權

user_permission 'lxw_hbase'

收回許可權

revoke 'liu_mja','lxw_hbase'

8)命名空間

關係資料庫系統中,命名空間namespace是表的邏輯分組,同一組中的表有類似的用途。

以下引自:

hbase的表也有命名空間的管理方式,命名空間的概念為即將到來的多租戶特性打下基礎:

配額管理( quota management (hbase-8410)):限制乙個namespace可以使用的資源,資源包括region和table等; 

命名空間安全管理( namespace security administration (hbase-9206)):提供了另乙個層面的多租戶安全管理; 

region伺服器組(region server groups (hbase-6721)):乙個命名空間或一張表,可以被固定到一組 regionservers上,從而保證了資料隔離性。 

命名空間可以被建立、移除、修改。

建表時可以指定命名空間,格式如下::

#create a namespace

create_namespace 'my_ns'

#create my_table in my_ns namespace

create 'my_ns:my_table', 'fam'

#drop namespace

drop_namespace 'my_ns'

#alter namespace

alter_namespace 'my_ns',

預定義的命名空間:

有兩個系統內建的預定義命名空間

hbase   系統命名空間,用於包含hbase的內部表 

default 所有未指定命名空間的表都自動進入該命名空間

使用預設的命名空間

#namespace=default and table qualifier=bar

create 'bar', 'fam'

指定命名空間

#namespace=foo and table qualifier=bar

create 'foo:bar', 'fam'

原文**:

HBase命令 三 增刪改查

新增 語法 put 新增或者覆蓋資料 put 表名 鍵名 列名 不是列簇名 值 指定的列名下單元格有值就覆蓋.沒有值就建立.所以hbase的新增資料和修改資料都是put語句.最後的時間戳可以不寫.預設為系統時間,如果要寫.切記不可使用引號括起來 hbase shell put mytable wos...

hbase學習筆記 增刪改查操作

org.apache.hbasegroupid hbase clientartifactid 1.2.1version dependency org.apache.hbasegroupid hbase commonartifactid 1.2.1version dependency junitgro...

Hbase增刪改查真正面目

hbase是如何實現增刪改查的?真實的情況是這樣的 hbase幾乎總是在做新增操作。當新增乙個cell的時候,hbase在hdfs上新增一條資料,型別是put。當修改乙個cell的時候,hbase在hdfs又新增一條資料,只是版本號比之前那個大 或者自己定義 當刪除乙個cell的時候,hbase還是...