1航揉、shell操作
1、執(zhí)行shell命令 $ bin/hbase shell
2金刁、輸入help獲取幫助信息
3、shell命令行的刪除媳友,需要按住ctrl+刪除鍵才可以刪除
4产捞、version 獲取當前hbase版本
5、status 查看數(shù)據(jù)庫狀態(tài)
6焊唬、exists 't1' 判斷表是否存在
7、is_enabled 't1' 判斷表是否enable或者disable
8焰雕、count 't1' 查看有多少條記錄
2芳杏、HBase的DDL操作
1.創(chuàng)建namespace create_namespace 'nstest'
2.描述查看namespace的結(jié)構(gòu) describe_namespace 'nstest'
3.列出當前數(shù)據(jù)庫中的所有namespace list_namespace
4.刪除namespace drop_namespace 'nstest2'
5.創(chuàng)建表
示例1: create 'ns1:t1', {NAME => 'f1', VERSIONS => 5}
-》ns1指的就是namespace爵赵,t1代表table_name(ns1:t1這樣的格式就是唯一確定了一張表)
-》在hbase中=>符號表示等于
-》f指的是列簇空幻,VERSIONS => 5代表同時能夠存儲的版本數(shù)
-》建表時要指定一個列簇容客,可以指定多個列簇,一個大括號中只能指定一個NAME(變量)
-》一個列簇就是一個大括號
示例2: create 'stu_test','f1'(一個列簇)
create 't1', 'f1', 'f2', 'f3' (多個列簇)
-》在建表的時候可以指定在某個namespace下但两,比如:ns1:t1供置,
沒有指定就是在默認的數(shù)據(jù)庫下面創(chuàng)建
5.描述表結(jié)構(gòu) desc 't1'
6.列出namespace中所有的table list
(如果沒有指定,則是默認的namespace)
7.刪除表:在hbase中表有啟用和禁用的狀態(tài)區(qū)分紧阔,在刪除和修改前需要先禁用续担,
如果是修改那么完成后需要再啟用
先禁用:disable 't1'
然后才能刪除:drop 't1'
禁用/啟用命令:disable, disable_all / enable, enable_all
8.修改表:凡是要修改表的結(jié)構(gòu)hbase規(guī)定物遇,必須先禁用表->修改表->啟動表,直接修改會報錯
-》刪除表中的列簇:alter ‘t1’,{NAME=>'info',METHOD=>'delete'}
-》修改版本存儲個數(shù):alter 't1' ,{name=>'info'询兴,VERSION=>3}
3、HBase的DML操作
1.添加數(shù)據(jù) put 'ns1:t1', 'r1', 'c1', 'value'
-》r1代表rowkey ; c1代表列簇+列 ; value代表具體插入的值
-》put 'nstest:tb1','20170521_10001','info:name','leo'
-》put 'nstest:tb1','20170521_10001','info:age','18'
2.查詢數(shù)據(jù) get scan
- 》 get 'ns1:t1', 'r1' 單行操作
- 》get 'nstest:tb1','20170521_10001' 指定rowkey
- 》get 'nstest:tb1','20170521_10001','info' 指定列簇進行查詢
- 》get 'nstest:tb1','20170521_10001','info:name' 指定某一列查詢
- 》 scan 'ns1:t1' 全表掃描
- 》scan 'ns1:t1', {COLUMNS =>['info:name', 'info:age'], LIMIT => 10
STARTROW => '20170521_10001',STOPROW => '20170521_10003'}
- 》STARTROW代表開始的行號崔涂,STOPROW代表結(jié)束的行號始衅;包頭不包尾
- 》LIMIT 表示查詢條數(shù);'info:name', 'info:age' 表示列簇和列
3.刪除數(shù)據(jù) delete deleteall
- 》delete 'nstest:tb1','20170521_10001','info:name'
刪除時必須指定列蝙茶,不能直接刪除列簇
- 》deleteall 刪除整行 deleteall 'nstest:tb1' , '20170521_10001'
4.截斷表 tauncate 't1'
- 》truncate表的處理過程:由于Hadoop的HDFS文件系統(tǒng)不允許直接修改,
所以只能先刪除表钳恕,再重新創(chuàng)建已達到清空表的目的
4忧额、Split 和 Compact
Split:
-》手動:split 'tb1','bc31bc83af45aab95d5d8a62962b23f5'
-》建表時預設(shè):create ‘tb1’,'f1',SPLIT=>['a','b','c']
Compact:
-》merge_region '759a217c34ad5203801866dab4b6b209',
'939affd918502d5e46792367a0a4a59a', true
-》major_compact ‘t1’
注:put get delete是單行操作;
scan掃描一段范圍內(nèi)的Rowkey睦番,由于rowkey有序從而scan也有序托嚣;
get和scan支持各種Filter厚骗,將邏輯推給Region Server,以此為基礎(chǔ)可以實現(xiàn)復雜的查詢领舰;
在單行上可以加鎖,具備強一致性啤月;