Hbase Shell 操作

进入hbase shell 

[root@ambari ~]# hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.1.2.2.6.4.0-91, r2a88e694af7238290a5747f963a4fa0079c55bf9, Thu Jan  4 10:42:39 UTC 2018

 查看当前用户

hbase(main):007:0> whoami
root (auth:SIMPLE)
    groups: root
 

 查看当前运行服务器状态

hbase(main):001:0> status
1 active master, 0 backup masters, 3 servers, 0 dead, 1.0000 average load

 查看版本

hbase(main):002:0> version
1.1.2.2.6.4.0-91, r2a88e694af7238290a5747f963a4fa0079c55bf9, Thu Jan  4 10:42:39 UTC 2018

 查看库中所有表

hbase(main):003:0> list
TABLE
hb_data_analysis:mrt_ipad_salesperformance
1 row(s) in 1.4480 seconds

=> ["hb_data_analysis:mrt_ipad_salesperformance"]
 

 判断表是否存在

 hbase(main):010:0> exists 'mrt_ipad_salesperformance'
Table mrt_ipad_salesperformance does not exist
0 row(s) in 0.0080 seconds

 判断表是否enable

hbase(main):021:0> is_enabled 'hb_data_analysis:mrt_ipad_salesperformance'
true
0 row(s) in 0.0150 seconds
 

 判断表是否disable

hbase(main):029:0> is_disabled 'hb_data_analysis:mrt_ipad_salesperformance'
false
0 row(s) in 0.0140 seconds

命名空间可以被创建、移除、修改。
表和命名空间的隶属关系在在创建表时决定,通过以下格式指定:
<namespace>:<table>

 

查看当前所有命名空间

hbase(main):041:0> list_namespace
NAMESPACE
default
hb_data_analysis
hbase
3 row(s) in 0.5210 seconds
 

预定义的命名空间
有两个系统内置的预定义命名空间:
hbase:系统命名空间,用于包含hbase的内部表
default:所有未指定命名空间的表都自动进入该命名空间
Example:指定命名空间和默认命名空间 


列出某个命名空间所有表

hbase(main):042:0> list_namespace_tables 'hb_data_analysis'
TABLE
mrt_ipad_salesperformance
1 row(s) in 0.0590 seconds
 

创建命名空间 

 hbase(main):031:0> create_namespace 'test_ns'
0 row(s) in 2.9120 seconds

 创建表并查看

语法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>}
具体命令:
create 't1', {NAME => 'f1', VERSIONS => 5}
create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'}
省略模式建立列族:
create 't1', 'f1', 'f2', 'f3'
指定每个列族参数:
create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true}
create 't1', 'f1', {SPLITS => ['10', '20', '30', '40']}

hbase(main):032:0> create 'test_ns:test_table','column_famaly','column_famaly1','column_famaly2'
0 row(s) in 15.5060 seconds

=> Hbase::Table - test_ns:test_table
hbase(main):033:0> list
TABLE
hb_data_analysis:mrt_ipad_salesperformance
test_ns:test_table
2 row(s) in 0.0040 seconds

=> ["hb_data_analysis:mrt_ipad_salesperformance", "test_ns:test_table"]
 

向表中插入数据并显示

hbase(main):045:0> put 'test_ns:test_table', '001','column_famaly:name','Tom'
0 row(s) in 0.3730 seconds

hbase(main):046:0> put 'test_ns:test_table', '001','column_famaly1:gender','man'
0 row(s) in 0.0130 seconds

hbase(main):047:0> put 'test_ns:test_table', '001','column_famaly2:chinese','90'
0 row(s) in 0.0110 seconds

hbase(main):048:0> put 'test_ns:test_table', '001','column_famaly2:math','91'
0 row(s) in 0.0100 seconds

hbase(main):049:0> scan 'test_ns:test_table'
ROW                                 COLUMN+CELL
 001                                column=column_famaly:name, timestamp=1545035218208, value=Tom
 001                                column=column_famaly1:gender, timestamp=1545035223699, value=man
 001                                column=column_famaly2:chinese, timestamp=1545035229267, value=90
 001                                column=column_famaly2:math, timestamp=1545035234274, value=91
1 row(s) in 0.1110 seconds
 

 按照rowkey查询数据

 hbase(main):050:0> get 'test_ns:test_table','001'
COLUMN                              CELL
 column_famaly:name                 timestamp=1545035218208, value=Tom
 column_famaly1:gender              timestamp=1545035223699, value=man
 column_famaly2:chinese             timestamp=1545035229267, value=90
 column_famaly2:math                timestamp=1545035234274, value=91
4 row(s) in 0.1970 seconds

 修改表结构 - 删除列族

先disable 表,然后修改表,最后enable表, 区分大小写

hbase(main):051:0> disable 'test_ns:test_table'
0 row(s) in 4.3510 seconds

hbase(main):052:0> alter 'test_ns:test_table',{NAME=>'column_famaly1',METHOD=>'delete'}
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 4.1490 seconds

hbase(main):053:0> enable 'test_ns:test_table'
0 row(s) in 4.4070 seconds
 

表重命名

停用表 - 为表创建快照 -根据快照复制新表并赋值数据 -删除快照 - 删除旧表

hbase(main):054:0> disable 'test_ns:test_table'
0 row(s) in 4.3310 seconds

hbase(main):055:0> snapshot 'test_ns:test_table', 'test_tableSnapshot'
0 row(s) in 3.2700 seconds

hbase(main):056:0> clone_snapshot 'test_tableSnapshot', 'test_ns:test1_table'
0 row(s) in 4.8110 seconds

hbase(main):057:0> delete_snapshot 'test_tableSnapshot'
0 row(s) in 0.1030 seconds

hbase(main):058:0> drop 'test_ns:test_table'
0 row(s) in 2.3120 seconds
 

 按照列名查询

hbase(main):059:0> scan 'test_ns:test1_table',{COLUMNS=>'column_famaly:name'}
ROW                                 COLUMN+CELL
 001                                column=column_famaly:name, timestamp=1545035218208, value=Tom
1 row(s) in 0.1250 seconds

 

删除命名空间, 需要先删除该命名空间下的所有的表,先disable table 再drop table

hbase(main):034:0> disable 'test_ns:test_table'
0 row(s) in 4.4930 seconds

hbase(main):035:0> drop 'test_ns:test_table'
0 row(s) in 2.4490 seconds
 

查询两个rowkey之间的数据

hbase(main):060:0> scan 'test_ns:test1_table',{STARTROW=>'001',STOPROW=>'002'}
ROW                                 COLUMN+CELL
 001                                column=column_famaly:name, timestamp=1545035218208, value=Tom
 001                                column=column_famaly2:chinese, timestamp=1545035229267, value=90
 001                                column=column_famaly2:math, timestamp=1545035234274, value=91
1 row(s) in 0.0180 seconds
 

最后删除命名空间

hbase(main):040:0> drop_namespace 'test_ns'
0 row(s) in 0.2370 seconds
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HBase ShellHBase提供的一种交互式命令行工具,可以用于管理和操作HBase数据库。使用HBase Shell可以执行各种操作,如创建表、插入数据、查询数据、删除数据等。以下是一些常用的HBase Shell操作: 1. 连接到HBase数据库 使用以下命令连接到HBase数据库: ``` hbase shell ``` 2. 创建表 使用以下命令创建表: ``` create 'table_name', 'column_family' ``` 其中,table_name是表名,column_family是列族名。 3. 插入数据 使用以下命令插入数据: ``` put 'table_name', 'row_key', 'column_family:column_name', 'value' ``` 其中,table_name是表名,row_key是行键,column_family是列族名,column_name是列名,value是值。 4. 查询数据 使用以下命令查询数据: ``` get 'table_name', 'row_key' ``` 其中,table_name是表名,row_key是行键。 5. 删除数据 使用以下命令删除数据: ``` delete 'table_name', 'row_key', 'column_family:column_name' ``` 其中,table_name是表名,row_key是行键,column_family是列族名,column_name是列名。 以上是一些常用的HBase Shell操作,还有其他更多的操作可以参考HBase官方文档。 ### 回答2: HBase是一个分布式的NoSQL数据库,支持非常大的数据表以及高速写入和读取操作。为了与HBase进行交互,用户可以使用HBase shell,它是一个命令行接口,可以用来执行各种HBase操作。接下来,我们将探讨HBase shell的相关操作。 首先,要开启HBase shell,需要进入HBase的安装目录,然后输入命令"hbase shell"。这时,你可以开始在shell中执行各种HBase操作HBase shell中有一个非常有用的命令“help”,可以列出所有可用的命令。在命令提示符下输入“help”即可查看命令列表。有些命令需要传递参数,你可以使用“help [命令名称]” 来查看命令的使用方式。 一个常用的操作是创建表。 在HBase shell中,使用“create”命令来创建表。命令语法为“create '表名', '列族1','列族2', ... , '列族n'”。例如,要创建一个名为“mytable”的表,有3个列族“f1”、“f2”和“f3”,可以使用该命令:“create 'mytable', 'f1','f2','f3'”。 另一个常用的操作是向表中添加数据。在HBase shell中,可以使用“put”命令将数据添加到表中。命令语法是“put '表名', '行键', '列族:列名', '值'”。例如,要将值为“ABC”的数据添加到“mytable”表中,行键为“row1”,列族为“f1”,列名为“column1”,可以使用该命令:“put 'mytable', 'row1', 'f1:column1', 'ABC'”。 HBase shell还支持查询表中的数据,可以使用“scan”命令查找表中所有的行和列。例如,使用“scan 'mytable'” 命令将显示所有“mytable”表中的行数据。 除了常用的操作HBase shell还有其他有用的功能,比如可以删除表、删除行、删除列等。使用HBase shell,可以轻松地对HBase数据库进行管理和操作,是一个非常实用的工具。 ### 回答3: Hbase是一个NoSQL数据库,它的底层数据存储结构是基于Hadoop的分布式文件系统HDFS。通过使用HbaseShell命令,我们可以进行大部分的数据操作,包括创建和删除表,插入和删除数据等等。在这里,我们将重点介绍一些常用的Hbase Shell操作。 1、创建表: 在Hbase中,表是指由行和列组成的数据结构,可以使用create命令创建一个Hbase表。例如,如果我们要创建一个名为student的表,则可以输入以下命令: create 'student','info','score' 这个命令在Hbase中创建了一个名为student的表,有两个列族,分别是info和score。 2、删除表: 使用drop命令删除一个Hbase表。例如,如果我们要删除名为student的表,输入以下命令: disable 'student' drop 'student' 先禁用表,然后再删除表,这样可以避免误删数据。 3、插入数据: 使用put命令插入一行数据到Hbase表。例如,如果我们要插入一个名为Tom的学生的数据,则可以输入以下命令: put 'student','001','info:name','Tom' put 'student','001','info:gender','male' put 'student','001','score:math','90' put 'student','001','score:english','80' 这个命令向student表中插入了一行数据,其中001为行键,info:name,info:gender,score:math,score:english为列名,Tom,male,90,80为值。 4、删除数据: 使用delete命令删除某行中的一列或整行数据。例如,如果我们要删除名为Tom的学生的成绩数据,则可以输入以下命令: delete 'student','001','score:math' delete 'student','001','score:english' 这个命令将student表中001行的score列族下的math和english列删除了。 以上是Hbase Shell中部分常用的操作。除此之外,还有其他命令,例如scan,get等,可通过官方文档或相关资料了解。Hbase Shell操作非常简单易用,使数据操作变得快速和高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值