HBase可以用shell进行一些常规的HBase增删改查以及数据库管理操作,下面将介绍几种常见的HBase shell命令操作:

    1.启动。

    打开终端,直接输入hbase shell。

    注意:需要配置HBase的环境变量,否则必须进入/usr/local/hbase1.1.2/bin目录执行。

hbase shell

    2.查看表。

    使用list命令可以查看所有表,如果要查看某个表是否存在,那么可以使用exists命令。

list
list 'abc.*'
list 'ns:abc.*'
exists 'ns1:t1'

    3.新建表。

    使用create命令,可以在新建表的时候设置列簇、每个列簇的版本或其他参数。

    命令格式: create ‘表名称’, ‘列族名称1’,‘列族名称2’,‘列名称N’

# 创建一张名为Student的表,包含基本信息(baseInfo)、学校信息(schoolInfo)两个列族
create 'Student','baseInfo','schoolInfo'

    4.描述表,即查看表的数据结构。

    使用describe命令。

    命令格式:desc ‘表名’

describe 'Student'

    5.修改表。

    使用alter命令,在执行期间,HBase表是不可用的。

    命令格式: alter ‘表名’, ‘列族名’

alter 'Student', {NAME => 'teacherInfo', METHOD => 'delete'}

    6.删除表。

    使用drop命令,在HBase中,如果要删除一个表,要先disable这个表,即使其不可用。

# 删除表前需要先禁用表
disable 'Student'
# 删除表
drop 'Student'

    7.插入/更新数据。

    使用put命令,在内部使用版本来控制。如果新增数据的行键值、列族名、列名与原有数据完全相同,则相当于更新操作。

    命令格式:put ‘表名’, ‘行键’,‘列族:列’,‘值’

put 'Student', 'rowkey1','baseInfo:name','tom'
put 'Student', 'rowkey1','baseInfo:birthday','1990-01-09'
put 'Student', 'rowkey1','baseInfo:age','29'
put 'Student', 'rowkey1','schoolInfo:name','Havard'
put 'Student', 'rowkey1','schoolInfo:localtion','Boston'

put 'Student', 'rowkey2','baseInfo:name','jack'
put 'Student', 'rowkey2','baseInfo:birthday','1998-08-22'
put 'Student', 'rowkey2','baseInfo:age','21'
put 'Student', 'rowkey2','schoolInfo:name','yale'
put 'Student', 'rowkey2','schoolInfo:localtion','New Haven'

    8.获取数据。

    获取数据有两种方式:一种是scan,一种是get。使用scan可以不用设置参数,这时为全表扫描;使用get需要指定Rowkey。

#使用scan进行全表扫描
scan 'Student'

# 获取指定行中所有列的数据信息
get 'Student','rowkey3'
# 获取指定行中指定列族下所有列的数据信息
get 'Student','rowkey3','baseInfo'
# 获取指定行中指定列的数据信息
get 'Student','rowkey3','baseInfo:name'

    9.删除数据。

    使用delete命令,但执行delete命令并不会真的删除HBase表中的数据,只会在表中设置一个删除的标志位,当在下次合并的时候才会执行删除操作。

# 删除指定行
delete 'Student','rowkey3'
# 删除指定行中指定列的数据
delete 'Student','rowkey3','baseInfo:name'