HBase Shell基本操作

相关知识

HBase Shell基本操作命令如表所示:

环境准备

开启hadoop相关进程
开启hbase相关进程
输入hbase shell进入shell环境

hbase shell

基本命令

使用version命令查看版本信息

version

使用status命令查看服务器状态

status

使用whoami命令可查看当前用户

whoami

使用list命令来查看一下都有哪些表

list

我们来创建一张表,表的参数如下:

表名为table_name,列族名为f1(语法:create

, {NAME => , VERSIONS => })

create 'table_name','f1'

我们也可以指定数据保存的版本数,如:create ‘table_name2’,{NAME => ‘f1’, VERSIONS => 2}

使用exists命令查看table_name表是否存在

exists 'table_name'
使用desc命令来查看一下table_name表结构(语法:describe


desc 'table_name'

修改table_name的表结构,将TTL(生存周期)改为30天,这里要注意,修改表结构前必须先disable使表失效,修改完成后再使用enable命令,使表重新生效(可用is_enabled 'table_name’或is_disabled 'table_name’判断表的状态)

disable 'table_name'
alter 'table_name',{NAME=>'f1',TTL=>'2592000'}
enable 'table_name'
这里2592000为30天的秒数,再次使用desc命令会发现表的TTL已经改为了2592000

13.现在我们使用put命令向table_name表中插入一行数据
语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp>

put 'table_name','rowkey001','f1:col1','value1'
put 'table_name','rowkey001','f1:col2','value2'
put 'table_name','rowkey002','f1:col1','value1'

这其中,'table_name’为表名,'rowkey001’为rowkey,‘f1:col1’ f1为列族,col1为列,'value1’为值,同一个列族下可以有多个列,同一个rowkey视为同一行。

使用get命令来查询一下table_name表,rowkey001中的f1下的col1的值

语法:get <table>,<rowkey>,[<family:column>,....]

get 'table_name','rowkey001', 'f1:col1'

另一种用法:

get 'table_name','rowkey001', {COLUMN=>'f1:col1'}

查询表table_name,rowkey001中的f1下的所有列值

get 'table_name','rowkey001'

使用scan命令扫描全表

语法:scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}

scan 'table_name'

也可以限定扫描表的前几行数据,我们扫描前1行数据

scan 'table_name',{LIMIT=>1}

由此也可以看出,rowkey相同的数据视为一行数据

使用count命令,查看table_name表中的数据行数

语法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum}

INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度

查询表table_name中的数据行数,每10条显示一次,缓存区为200

count 'table_name', {INTERVAL => 10, CACHE => 200}

由于我们的数据只有2行,所以查询结果为2

使用delete命令删除table_name表中,rowkey001中的f1:col2的数据

语法:delete <table>, <rowkey>, <family:column> , <timestamp>,必须指定列名)

delete 'table_name','rowkey001','f1:col2'
这里需要注意,如果该列保存有多个版本的数据,将一并被删除

使用deleteall命令,删除table_name表中rowkey002这行数据

语法:deleteall <table>, <rowkey>, <family:column> , <timestamp>,可以不指定列名,删除整行数据)

deleteall 'table_name','rowkey002'

使用truncate命令,删除table_name表中的所有数据

语法:truncate <table> 其具体过程是:disable table -> drop table -> create table

truncate 'table_name'

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值