1、这里只是将http://www.yiibai.com/hbase/hbase_update_data.html该网站上的指令进行筛检出来。
通用命令
指令 | 注释 |
---|---|
status | 提供HBase的状态,例如,服务器的数量 |
version | 提供正在使用HBase版本 |
table_help | 表引用命令提供帮助 |
whoami | 提供有关用户的信息 |
数据定义语言
这些是关于HBase在表中操作的命令。
指令 | 注释 |
---|---|
create | 创建一个表 |
list | 列出HBase的所有表 |
disable | 禁用表 |
is_disabled | 验证表是否被禁用 |
enable | 启用一个表 |
is_enabled | 验证表是否已启用 |
describe | 提供了一个表的描述 |
alter | 改变一个表 |
exists | 验证表是否存在 |
drop | 从HBase中删除表 |
drop_all | 丢弃在命令中给出匹配“regex”的表 |
数据操纵语言
指令 | 注释 |
---|---|
put | 把指定列在指定的行中单元格的值在一个特定的表 |
get | 取行或单元格的内容 |
delete | 删除表中的单元格值 |
deleteall | 删除给定行的所有单元格 |
scan | 扫描并返回表数据 |
count | 计数并返回表中的行的数目 |
truncate | 禁用,删除和重新创建一个指定的表 |
HBase创建表
下面给出的是一个表名为emp的样本模式。它有两个列族:“personal data”和“professional data”。
create '<table name>','<column family>'
- 1
例子:
hbase(main):002:0> create 'emp', 'personal data', 'professional data'
- 1
HBase查看表
hbase(main):001:0 > list
- 1
HBase禁用表
hbase(main):025:0> disable 'emp'
0 row(s) in 1.2760 seconds
- 1
- 2
HBase删除表
用drop命令可以删除表。在删除一个表之前必须先将其禁用。
hbase(main):018:0> disable 'emp'
0 row(s) in 1.4580 seconds
hbase(main):019:0> drop 'emp'
0 row(s) in 0.3060 seconds
- 1
- 2
- 3
- 4
- 5
- 6
drop_all
这个命令是用来在给出删除匹配“regex”表。它的语法如下:
hbase> drop_all 't.*'
- 1
假设有一些表的名称为raja, rajani, rajendra, rajesh, 和 raju。
hbase(main):017:0> list
TABLE
raja
rajani
rajendra
rajesh
raju
9 row(s) in 0.0270 seconds
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
所有这些表以字母raj开始。首先使用disable_all命令禁用所有这些表如下所示。
raja
rajani
rajendra
rajesh
raju
Disable the above 5 tables (y/n)?
y
5 tables successfully disabled
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
现在,可以使用 drop_all 命令删除它们,如下所示。
hbase(main):018:0> drop_all 'raj.*'
raja
rajani
rajendra
rajesh
raju
Drop the above 5 tables (y/n)?
y
5 tables successfully dropped
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
HBase表描述和修改
描述
hbase> describe 'table name'
- 1
设置只读
hbase(main):006:0> alter 'emp', READONLY
- 1
删除列族
hbase> alter ' table name ', 'delete' => ' column family '
hbase(main):007:0> alter 'employee','delete'=>'professional'
- 1
- 2
HBase创建数据
使用put命令,可以插入行到一个表。它的语法如下:
put ’<table name>’,’row1’,’<colfamily:colname>’,’<value>’
- 1
将第一行的值插入到emp表如下所示
hbase(main):005:0> put 'emp','1','personal data:name','raju'
0 row(s) in 0.6600 seconds
hbase(main):006:0> put 'emp','1','personal data:city','hyderabad'
0 row(s) in 0.0410 seconds
hbase(main):007:0> put 'emp','1','professional
data:designation','manager'
0 row(s) in 0.0240 seconds
hbase(main):007:0> put 'emp','1','professional data:salary','50000'
0 row(s) in 0.0240 seconds
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
HBase更新数据
hbase(main):003:0> scan 'emp'
ROW COLUMN+CELL
row1 column=personal:name, timestamp=1418051555, value=raju
row1 column=personal:city, timestamp=1418275907, value=Hyderabad
row1 column=professional:designation, timestamp=14180555,value=manager
row1 column=professional:salary, timestamp=1418035791555,value=50000
1 row(s) in 0.0100 seconds
# 更新
hbase(main):002:0> put 'emp','row1','personal:city','Delhi'
0 row(s) in 0.0400 seconds
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
HBase读取数据
get ’<table name>’,’row1’
- 1
下面的例子说明如何使用get命令。扫描emp表的第一行。
hbase(main):012:0> get 'emp', '1'
- 1
读取指定列
hbase>get 'table name', ‘rowid’, {COLUMN => ‘column family:column name ’}
# 例如
hbase(main):015:0> get 'emp', 'row1', {COLUMN=>'personal:name'}
- 1
- 2
- 3
HBase删除数据
使用 delete 命令,可以在一个表中删除特定单元格。 delete 命令的语法如下:
delete ‘<table name>’, ‘<row>’, ‘<column name >’, ‘<time stamp>’
- 1
下面是一个删除特定单元格和例子
hbase(main):006:0> delete 'emp', '1', 'personal data:city',
1417521848375
0 row(s) in 0.0060 seconds
- 1
- 2
- 3
删除表的所有单元格
使用“deleteall”命令,可以删除一行中所有单元格。下面给出是 deleteall 命令的语法。
deleteall ‘<table name>’, ‘<row>’,
- 1
这里是使用“deleteall”命令删去 emp 表 row1 的所有单元的一个例子
hbase(main):007:0> deleteall 'emp','1'
0 row(s) in 0.0240 seconds
- 1
- 2
HBase计数
可以使用count命令计算表的行数量。它的语法如下:
count ‘<table name>’
# 例如
hbase(main):023:0> count 'emp'
2 row(s) in 0.090 seconds
=> 2
- 1
- 2
- 3
- 4
- 5
调用Mapreduce统计行数
$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'tablename'
- 1
这种方式效率比上一种要高很多,调用的hbase jar中自带的统计行数的类。
HBase安全
三个命令:grant, revoke 和 user_permission
grant命令授予特定的权限,如读,写,执行和管理表给定一个特定的用户。 grant命令的语法如下:
hbase> grant <user> <permissions> [<table> [<column family> [<column; qualifier>]]
- 1
我们可以从RWXCA组,其中给予零个或多个特权给用户
- R - 代表读取权限
- W - 代表写权限
- X - 代表执行权限
- C - 代表创建权限
- A - 代表管理权限
下面给出是为用户“wyl’授予所有权限的例子
hbase(main):018:0> grant 'wyl', 'RWXCA'
- 1
revoke
revoke命令用于撤销用户访问表的权限。它的语法如下:
hbase> revoke <user>
- 1
下面的代码撤消名为“wyl”用户的所有权限。
hbase(main):006:0> revoke 'wyl'
- 1
user_permission
此命令用于列出特定表的所有权限。 user_permission的语法如下:
hbase>user_permission 'tablename'
- 1
下面的代码列出了“emp”表的所有用户权限。
hbase(main):013:0> user_permission 'emp'
- 1
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">
</div>