HBase基本文法
- HBase操作
- HBase基本指令
-
- 使用者權限管理
- 表管理
- 行管理
- 列簇管理
- 将文檔資料導入HBase
HBase操作
通過hbase shell進入
- version – 檢視版本
- status – 檢視叢集狀态
- whoami – 檢視目前有效使用者名
- help – 檢視幫助指令
HBase基本指令
使用者權限管理
1、檢視權限
- 文法:user_permission [‘表名’…]
- 例:檢視customer表權限
hbase(main)> user_permission 'customer'
2、配置設定權限
- 文法 : grant ‘使用者名’, ‘RWXCA’
-
權限用五個字母表示: “RWXCA”.
READ(‘R’), WRITE(‘W’), EXEC(‘X’), CREATE(‘C’), ADMIN(‘A’)
- 例:給使用者‘root’配置設定讀寫執行管理的權限,
hbase(main)> grant 'root', 'RWXCA'
3、收回權限
- 與配置設定權限類似,文法:revoke ‘使用者名’ [,‘表名’…]
表管理
1、建立表
- 文法:create ‘表名’,{NAME=>‘列簇名’},{NAME=>‘列簇名’}…
- 例:建立表customer,列簇為addr、order
hbase(main)> create 'customer',{NAME=>'addr'},{NAME=>'order'}
2、 删除表
- 分兩步:首先disable,然後drop
- 文法:disable ‘表名’----> drop ‘表名’
- 例:删除cust表
hbase(main)> disable 'cust'
hbase(main)> drop 'cust'
3、修改表名
-
步驟:
1、拍攝快照
文法:snapshot ‘表名’,‘鏡像名’
例:
hbase(main)> snapshot 'customer','temp'
2、克隆快照,命名為新表名
文法:clone_snapshot ‘鏡像名’,‘新表名’
例:
hbase(main)> clone_snapshot 'temp','cust'
3、删除快照
文法:delete_snapshot ‘鏡像名’
例:
hbase(main)> delete_snapshot 'temp'
4、檢視有哪些表
hbase(main)> lis
行管理
1、添加資料
- 文法:put ‘表名’,‘行鍵’,‘列簇名:列名’,‘值’[,時間戳]
- 例:
hbase(main)> put 'customer','1','addr:city','montoreal'
hbase(main)> put 'customer','1','addr:address','210021 xiaohang road'
2、修改資料
- 文法與添加資料一緻
- 例:
hbase(main)> put 'customer','1','addr:city','nanjing'
3、删除行
- 可以單獨删除行,行内資料全部删除
- 文法:delete ‘表名’ , ‘行鍵’
-
例:
#删除第二行資料:
#統計行數:hbase(main)> delete 'customer','2'
hbase(main)> count 'customer'
列簇管理
1、增加列簇
- 文法:alter ‘表名’,NAME=>‘列簇名’
- 例:
hbase(main)> alter 'customer',NAME=>'sample'
2、删除列簇
- 文法:alter ‘表名’,NAME=>‘列簇名’,METHOD=>‘delete’
- 例:
hbase(main)> alter 'customer',NAME=>'sample',METHOD=>'delete'
3、修改列簇
- 步驟:先加,後删
4、查詢資料
-
a)查詢某行記錄
文法:get ‘表名’, ‘行鍵’ [,‘列簇名’]
例:
hbase(main)> get 'customer','1','addr:city'
-
b)掃描表
文法:scan ‘表名’, {COLUMNS => ‘列簇名’, LIMIT => num}
另外,還可以添加STARTROW、TIMERANGE和FITLER等進階功能
例:
hbase(main)> scan 'customer',{COLUMNS=>'addr:city'}
hbase(main)> scan 'customer',{LIMIT=>1}
将文檔資料導入HBase
步驟:
-
1、HBase指令:
##建立表emp_basic
hbase(main)> create 'emp_basic',{NAME=>'emp'},{NAME=>'time'}
-
2、linux指令:
##把文檔上傳HDFS
##通過hbase shell導入文檔資料hdfs dfs -put /root/emp_basic.csv /test/
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," -Dimporttsv.columns="HBASE_ROW_KEY,emp:name,emp:job_title,emp:company,time:sDate,time:eDate" "emp_basic" /test/emp_basic.csv
-
3、HBase指令:
##檢視文檔是否導入成功
hbase(main)> scan 'emp_basic'