兩篇可以參考的文章,講的不錯 (
******************************
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還是...