HBase常用基本操作命令

HBase Shell 常用基本操作命令

1.启动/退出

[root@scnode01~]# hbase shell
hbase(main):001:0> exit
[root@scnode01~]# 

2.help

查看某一组命令下的所有命令的简介和简单示范

help 'ddl'

查看某个命令的详细使用

help 'shell_name'

3.general组中的命令

查看集群状态

hbase(main):001:0> status

查看集群版本

hbase(main):001:0> version

当前登录用户角色信息

hbase(main):001:0> whoami

查看对某张表进行操作的基本命令

hbase(main):001:0> table_help

4.ddl组中的命令

查看数据库中有哪些表

hbase(main):001:0> list

查看表属性信息

hbase(main):001:0> describe 'table_name'

creat创建表 create ‘表名’, ‘列族1’, ‘列族2’…

hbase(main):001:0> create 'person', 'name', 'age'

相当于

hbase(main):001:0> create 'person',{NAME=>'name' },{NAME=>'age'}

建表同时可以指定表属性信息

hbase(main):001:0> create 'user_info',{NAME=>'base_info',VERSIONS=>3 },{NAME=>'extra_info',IN_MEMORY=>'true'}

alter 修改表

(1)增加列族

hbase(main):001:0> alter 'table_name', 'add_family'

hbase(main):001:0> alter 'table_name', {NAME => 'add_family'}

当然,新增加的列可以设置属性,比如

hbase(main):001:0> alter 'table_name', {NAME => 'add_family', VERSIONS => 3}

(2)删除列族

hbase(main):001:0> alter 'table_name', {NAME => 'delete_family', METHOD => 'delete'}

hbase(main):001:0> alter 'table_name', 'delete' => 'delete_family'

(3) 添加列族f1同时删除列族f2

hbase(main):001:0> alter 'user', {NAME => 'f1'}, {NAME => 'f2', METHOD => 'delete'}

(4) 修改列族:将user表的f1列族版本号改为5

hbase(main):001:0> alter 'user', NAME => 'f1', VERSIONS => 5

判断表是否存在

hbase(main):001:0> exists 'table_name'

禁用表与启用表

(1) 禁用表

hbase(main):001:0> disable 'table_name'

(2) 查看表是否禁用

hbase(main):001:0> is_disabled 'table_name'

(3) 启用表

hbase(main):001:0> enable 'table_name'

(4) 查看表是否启用

hbase(main):001:0> is_enabled 'table_name'

删除表

hbase的某些版本,在删除表前,需要先禁用表

hbase(main):001:0> disable 'table_name'
hbase(main):001:0> drop 'table_name'

5.dml组中的命令

插入数据

(1)put ‘表名’,‘rowkey’,‘列族名:列名’,‘值’

put 'person','0001','name:firstname', 'Jed'

(2)可以指定时间戳,否则默认为系统当前时间

put 'person','0002','info:age',20,1482077777778

查询某行

(1) 查询某行

get 'person', '0001'

(2) 查询某行,指定列名

get 'person', '0001', 'name:firstname' 

(3) 查询某行,添加其他限制条件
查询person表中,rowkey为’0001’的这一行,只显示name:firstname这一列,并且只显示最新的3个版本

get 'person', '0001', {COLUMNS => 'name:firstname', VERSIONS => 3}

查看指定列的内容,并限定显示最新的3个版本和时间范围

get 'person', '0001', {COLUMN => 'name:first', VERSIONS => 3, TIMERANGE => [1392368783980, 1392380169184]}

查询person表中,rowkey为’rk0001’,且某列的内容为’中国’的记录

scan 'person', 'rk0001', {FILTER => "ValueFilter(=, 'binary:中国')"}

全表扫描

(1) 扫描全表

scan 'person'

(2) 扫描时指定列族

scan 'person', {COLUMNS => 'name'}

(3) 扫描时指定列族,并限定显示最新的5个版本的内容

scan 'person', {COLUMNS => 'name', VERSIONS => 5}

(4) 设置开启Raw模式,开启Raw模式会把那些已添加删除标记但是未实际删除的数据也显示出来

scan 'person', {COLUMNS => 'name', RAW => true}

(5) 列的过滤

查询user表中列族为info和data的信息

scan 'user', {COLUMNS => ['info', 'data']}

查询user表中列族为info,列名为name、列族为data,列名为pic的信息

scan 'user', {COLUMNS => ['info:name', 'data:pic']}

查询user表中列族为info,列名为name的信息,并且版本最新的5个

scan 'user', {COLUMNS => 'info:name', VERSIONS => 5}

查询user表中列族为info和data且列名含有a字符的信息

scan 'user', {COLUMNS => ['info', 'data'], FILTER => "(QualifierFilter(=,'substring:a'))"}

查询user表中列族为info,rk范围是[rk0001, rk0003)的数据

scan 'people', {COLUMNS => 'info', STARTROW => 'rk0001', ENDROW => 'rk0003'}

查询user表中row key以rk字符开头的

scan 'user',{FILTER=>"PrefixFilter('rk')"}

查询user表中指定时间范围的数据

scan 'user', {TIMERANGE => [1392368783980, 1392380169184]}

删除数据

delete 'table_name', 'rowkey', 'family:column'

清空表

truncate 'table_name'

6.其他

(1) 查看命名空间

hbase(main):015:0> list_namespace

NAMESPACE
default # 用户创建的表放在这里
hbase # 系统表空间

(2) 把表中数据强制写到磁盘

flush 'table_name'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值