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_basichbase(main)> create 'emp_basic',{NAME=>'emp'},{NAME=>'time'}
-
2、linux命令:
##把文档上传HDFShdfs dfs -put /root/emp_basic.csv /test/
##通过hbase shell导入文档数据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'