hbase shell指令

来源:互联网 发布:js冒泡事件是什么意思 编辑:程序博客网 时间:2024/06/01 07:11

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>' 

例子:

hbase(main):002:0> create 'emp', 'personal data', 'professional data'

HBase查看表

hbase(main):001:0 > list

HBase禁用表

hbase(main):025:0> disable 'emp'0 row(s) in 1.2760 seconds

HBase删除表
用drop命令可以删除表。在删除一个表之前必须先将其禁用。

hbase(main):018:0> disable 'emp'0 row(s) in 1.4580 secondshbase(main):019:0> drop 'emp'0 row(s) in 0.3060 seconds

drop_all
这个命令是用来在给出删除匹配“regex”表。它的语法如下:

hbase> drop_all 't.*' 

假设有一些表的名称为raja, rajani, rajendra, rajesh, 和 raju。

hbase(main):017:0> listTABLErajarajanirajendra rajeshraju9 row(s) in 0.0270 seconds

所有这些表以字母raj开始。首先使用disable_all命令禁用所有这些表如下所示。

rajarajanirajendrarajeshrajuDisable the above 5 tables (y/n)?y5 tables successfully disabled

现在,可以使用 drop_all 命令删除它们,如下所示。

hbase(main):018:0> drop_all 'raj.*'rajarajanirajendrarajeshrajuDrop the above 5 tables (y/n)?y5 tables successfully dropped

HBase表描述和修改
描述

hbase> describe 'table name'

设置只读

hbase(main):006:0> alter 'emp', READONLY

删除列族

hbase> alter ' table name ', 'delete' => ' column family ' hbase(main):007:0> alter 'employee','delete'=>'professional'

HBase创建数据
使用put命令,可以插入行到一个表。它的语法如下:

put ’<table name>’,’row1’,’<colfamily:colname>’,’<value>

将第一行的值插入到emp表如下所示

hbase(main):005:0> put 'emp','1','personal data:name','raju'0 row(s) in 0.6600 secondshbase(main):006:0> put 'emp','1','personal data:city','hyderabad'0 row(s) in 0.0410 secondshbase(main):007:0> put 'emp','1','professionaldata:designation','manager'0 row(s) in 0.0240 secondshbase(main):007:0> put 'emp','1','professional data:salary','50000'0 row(s) in 0.0240 seconds

HBase更新数据

hbase(main):003:0> scan 'emp' ROW              COLUMN+CELLrow1 column=personal:name, timestamp=1418051555, value=rajurow1 column=personal:city, timestamp=1418275907, value=Hyderabadrow1 column=professional:designation, timestamp=14180555,value=managerrow1 column=professional:salary, timestamp=1418035791555,value=500001 row(s) in 0.0100 seconds# 更新hbase(main):002:0> put 'emp','row1','personal:city','Delhi'0 row(s) in 0.0400 seconds

HBase读取数据

get ’<table name>’,’row1’

下面的例子说明如何使用get命令。扫描emp表的第一行。

hbase(main):012:0> get 'emp', '1'

读取指定列

hbase>get 'table name', ‘rowid’, {COLUMN => ‘column family:column name ’}# 例如hbase(main):015:0> get 'emp', 'row1', {COLUMN=>'personal:name'}

HBase删除数据
使用 delete 命令,可以在一个表中删除特定单元格。 delete 命令的语法如下:

delete ‘<table name>’, ‘<row>’, ‘<column name >’, ‘<time stamp>’

下面是一个删除特定单元格和例子

hbase(main):006:0> delete 'emp', '1', 'personal data:city',14175218483750 row(s) in 0.0060 seconds

删除表的所有单元格
使用“deleteall”命令,可以删除一行中所有单元格。下面给出是 deleteall 命令的语法。

deleteall ‘<table name>’, ‘<row>’,

这里是使用“deleteall”命令删去 emp 表 row1 的所有单元的一个例子

hbase(main):007:0> deleteall 'emp','1'0 row(s) in 0.0240 seconds

HBase计数
可以使用count命令计算表的行数量。它的语法如下:

count ‘<table name>’# 例如hbase(main):023:0> count 'emp'2 row(s) in 0.090 seconds=> 2 

调用Mapreduce统计行数

$HBASE_HOME/bin/hbase   org.apache.hadoop.hbase.mapreduce.RowCounter 'tablename'

这种方式效率比上一种要高很多,调用的hbase jar中自带的统计行数的类。

HBase安全
三个命令:grant, revoke 和 user_permission
grant命令授予特定的权限,如读,写,执行和管理表给定一个特定的用户。 grant命令的语法如下:

hbase> grant <user> <permissions> [<table> [<column family> [<column; qualifier>]]

我们可以从RWXCA组,其中给予零个或多个特权给用户

  • R - 代表读取权限
  • W - 代表写权限
  • X - 代表执行权限
  • C - 代表创建权限
  • A - 代表管理权限

下面给出是为用户“wyl’授予所有权限的例子

hbase(main):018:0> grant 'wyl', 'RWXCA'

revoke
revoke命令用于撤销用户访问表的权限。它的语法如下:

hbase> revoke <user>

下面的代码撤消名为“wyl”用户的所有权限。

hbase(main):006:0> revoke 'wyl'

user_permission
此命令用于列出特定表的所有权限。 user_permission的语法如下:

hbase>user_permission 'tablename'

下面的代码列出了“emp”表的所有用户权限。

hbase(main):013:0> user_permission 'emp'
原创粉丝点击