hbase shell指令

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>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值