您好,登錄后才能下訂單哦!
好程序員大數據學習路線分享Hbase指令學習
啟動:
1、啟動zk ?zkServer.sh start
2、啟動hdfs ?start-dfs.sh
3、啟動hbase服務 start-hbase.sh
?????????(啟動報錯的話要kill QuorumPeerMain的進程,在重新啟動)
4啟動客戶端: hbase shell
時間必須同步,不然也會報錯
??????TIMERANGE=>[xxxxx,xxxxx]時間戳的數組 ???range范圍
??????TIMESTAMP=>xxxxx???時間戳單數 ????????stamp 標志
??????xy02:16010
??????xy02:16010
Hbase沒有庫的概念,屬于無模式,但是有 名稱空間(namespace相當于庫)和 組(相當于表)的概念
Hbase默認有兩個組: Deflult 和 Hbase
list?????????顯示hbase中的表
---------------------------------------------------------------------------------------------------------------------------------
增
create 'user', 'info', 'data'???????創建user表,包含info、data兩個列族,默認在(default)
create 'ns1:user', 'info', 'data'?????在ns1(namesqpce)下建了user
create 'user1',{NAME=>'info',BLOOMFILTER => 'ROWCOL',VERSIONS => '2'}
alter?'user1',{NAME=>'data',BLOOMFILTER => 'ROWCOL',VERSIONS => '2'}
(有則更新更改,無則新增,可以利用alter新增data的列簇)
create 'user2', 'f1', SPLITS => ['10', '20', '30', '40'] ?--事先分配好region所管轄的rowkey的范圍
?插入數據:(不能一次性插入多列)
put 'user','rk01','info:name','xuyu'
put 'user','rk01','info:age','18'
put 'user','rk01','info:sex','boy'
put 'user','rk01','data:pic','picture'
?更新數據
put 'user','rk01','info:name','xuyu1111'????查詢的時候name就變成xuyu1111了
---------------------------------------------------------------------------------------------------------------------------------
刪(刪除整個表的時候要禁用表,就像文件在打開的時候無法重命名一樣)
1disable 'test'????禁用test表
2drop 'test'??????刪除test表
3list ???????????發現test表已經被刪除了
4?enable 'user'????啟用表
刪除列簇:
alter 'user1',?NAME => 'info', METHOD => 'delete'
alter 'user1', 'delete' => 'info'
??刪除數據
?????delete 'user','rk01','info:name'??刪除name?
?????delete 'user', 'rk01', 'info:name', 1534126109598??刪除時間戳為xxx 的name
刪除指定的版本:(往上刪除版本)
delete 'user','rk01','info:name',TIMESTAMP=>1534138686498
表判斷:
exists 'user'??????判斷表
disable 'user'?????禁用表
enable 'user'?????開啟表
desc 'user'???????顯示表的屬性信息
統計表:(統計效率較差,不建議使用)
count 'user'
清空表:
truncate 'user'
---------------------------------------------------------------------------------------------------------------------------------
改(重命名整個表的時候要禁用表,就像文件在打開的時候無法重命名一樣)
?????1disable 'user'
有則更新,無則新增
alter 'user', NAME => 'f1'
alter?'user1',{NAME=>'data',BLOOMFILTER => 'ROWCOL',VERSIONS => '2'}
---------------------------------------------------------------------------------------------------------------------------------
查
describe 'user'??????????會顯示name=data,name=info等一系列屬性信息
表掃描(scan)
scan 'user'??????????????對表進行掃描,會顯示表中的內容數據
scan 'user',{COLUMNS => ['info:name','info:age']}???掃描指定的部分
設置查詢條件:(包頭不包尾)
scan 'user',{COLUMNS => ['info:name','info:age'],STARTROW=>'rk00002',LIMIT=>2}
scan?'user',{COLUMNS => ['info:name','info:age'],STARTROW=>'rk01',ENDROW=>'rk04',LIMIT=>2}
?注意:這里的startrow和endrow只的都是rowkey(相當于主鍵)
查詢數據:(GET)
get 'user','rk01'?????????????????????獲取全部數據
get 'user','rk01',{TIMESTAMP=>1534126755704}
get 'user','rk01','info'????????????????獲取列簇為info數據
get 'user','rk01','data'????????????????獲取列簇為data數據
get 'user','rk01','info:name'???????????只獲取info中的name
獲取user表中row key為rk0001,info、data列族的信息
get 'user', 'rk01', 'info', 'data'??????????獲取info和data數據
get 'user','rk01',{COLUMN=>['info','data']}
get 'user', 'rk01', {COLUMN => ['info:name', 'data:pic']}
獲取user表中row key為rk0001,列族為info,版本號最新5個的信息
get 'user', 'rk01', {COLUMN => 'info', VERSIONS => 2}
get 'user', 'rk01', {COLUMN => 'info:name', VERSIONS => 5}
get 'user', 'rk01', {COLUMN?=> 'info:name', VERSIONS => 5,TIMERANGE?=> [1534123523054,xxxxxxxxxxxxxxx]}?????????獲取5個版本號中這2個時間戳的name
---------------------------------------------------------------------------------------------------------------------------------
Namespace 下的操作
list_namespace???????列舉出所有的namespace(相當于庫),默認有2個組:default和hbase
create_namespace 'ns1'?????創建一個名字為ns1的namespace(相當于庫)
create 'ns1:user', 'info', 'data'?????在ns1(namesqpce)下建了user,在user前加ns1:
list_namespace_tables 'ns1' 查看ns1下的表
alter_namespace?'ns1', {METHOD => 'set', 'NAME' => 'gjz1'}???修改
alter_namespace 'ns1', {METHOD => 'unset',?NAME => 'NAME'}??刪除
drop_namespace 'ns1' ??###只能刪除一個空的namespace
describe_namespace 'ns1'?????查看內容描述
---------------------------------------------------------------------------------------------------------------------------------
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。