Haoop(二十八) Hbase的命令操作詳記

2018-08-22  本文已影响29人  文子轩

下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下:

名称 命令表达式
创建表 create '表名称', '列名称1','列名称2','列名称N'
添加记录 put '表名称', '行名称', '列名称:', '值'
查看记录 get '表名称', '行名称'
查看表中的记录总数 count '表名称'
删除记录 delete '表名' ,'行名称' , '列名称'
删除一张表 先要屏蔽该表,才能对该表进行删除,第一步 disable '表名称' 第二步 drop '表名称'
查看所有记录 scan "表名称"
查看某个表某个列中所有数据 scan "表名称" , ['列名称:']
更新记录 就是重写一遍进行覆盖

一.一般操作

hbase(main):011:0> status
1 active master, 0 backup masters, 1 servers, 0 dead, 4.0000 average load

hbase(main):012:0> version
1.2.1, r8d8a7107dc4ccbf36a92f64675dc60392f85c015, Wed Mar 30 11:19:21 CDT 2016

二.DDL操作

1 創建一個表

hbase(main):013:0> create 'table','column_famaly','column_famaly1','column_famaly2'
0 row(s) in 94.9160 seconds
=> Hbase::Table - table

2 列出所有的表

hbase(main):014:0> list
TABLE
stu
table
test
3 row(s) in 0.0570 seconds

  1. 获得表的描述

hbase(main):015:0> describe 'table'

  1. 删除一个列族 alter,disable,enable

base(main):016:0> alter 'table',{NAME=>'column_famaly',METHOD=>'delete'}
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 3.0220 seconds

hbase(main):018:0> describe 'table'

  1. drop一個表

hbase(main):019:0> drop 'stu'
ERROR: Table stu is enabled. Disable it first.

  1. 把表設置爲disable

hbase(main):020:0> disable 'stu'
0 row(s) in 2.3150 seconds

  1. 再删除一个表

hbase(main):021:0> drop 'stu'
0 row(s) in 1.2820 seconds
8.判斷表是否enable
hbase(main):025:0> is_enabled 'table'
true
0 row(s) in 0.0150 seconds

  1. 判斷表是否enable

hbase(main):026:0> is_disabled 'table'
false
0 row(s) in 0.0140 seconds

把表设为disable

hbase(main):027:0> disable 'table'
0 row(s) in 33.2980 seconds

hbase(main):028:0> is_disabled 'table'
true
0 row(s) in 0.0140 seconds

三、DML操作

1.插入几条记录

put 'table','id','column_famaly1:name','tanggao'

hbase(main):032:0> put 'table','id','column_famaly1:age','20'
0 row(s) in 0.0150 seconds

hbase(main):033:0> put 'table','id','column_famaly1:sex','boy'
0 row(s) in 0.0190 seconds

  1. 獲取一條數據
    获取一个id的所有数据

hbase(main):034:0> get 'table','id'

获取一个id,一个列族的所有数据

hbase(main):035:0> get 'table','id','column_famaly1'

获取一个id,一个列族中一个列的所有数据

hbase(main):036:0> get 'table','id','column_famaly1:name'

3.更新一条记录
把id的age修改为22

hbase(main):037:0> put 'table','id','column_famaly1:age','22'
0 row(s) in 0.0160 seconds

hbase(main):038:0> get 'table','id','column_famaly1:age'
COLUMN CELL
column_famaly1:age timestamp=1463055893492, value=22
1 row(s) in 0.0190 seconds

4.通过timestamp来获取两个版本的数据

hbase(main):039:0> get 'table','id',{COLUMN=>'column_famaly1:age',TIMESTAMP=>1463055735107}
COLUMN CELL
column_famaly1:age timestamp=1463055735107, value=20
1 row(s) in 0.0340 seconds

hbase(main):040:0> get 'table','id',{COLUMN=>'column_famaly1:age',TIMESTAMP=>1463055893492}
COLUMN CELL
column_famaly1:age timestamp=1463055893492, value=22
1 row(s) in 0.0140 seconds

5.全表掃描

hbase(main):041:0> scan 'table'

6.删除行健为id的值的‘column_famaly1:age’字段

hbase(main):042:0> delete 'table','id','column_famaly1:age'

hbase(main):043:0> get 'table','id'

7.刪除整行

hbase(main):044:0> deleteall 'table','id'
0 row(s) in 0.0550 seconds

8.查詢表中有多少行

hbase(main):045:0> count 'table'
0 row(s) in 0.0450 seconds

9.给‘id’这个行健增加'column_famaly1:addr'字段,并使用counter实现递增

hbase(main):002:0> incr 'table','id','column_famaly1:addr'
hbase(main):003:0> incr 'table','id','column_famaly1:addr'
hbase(main):004:0> get 'table','id','column_famaly1:addr'
hbase(main):005:0> incr 'table','id','column_famaly1:addr'

10.獲取當前的count的值

hbase(main):006:0> get_counter 'table','id','column_famaly1:addr'

11.將整個表清空

hbase(main):007:0> truncate 'table'

上一篇下一篇

猜你喜欢

热点阅读