hadoop之hbase基本操作

Posted Mars.wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop之hbase基本操作相关的知识,希望对你有一定的参考价值。

hbase shell 进入hbase命令行
list 显示HBASE表
status 系统上运行的服务器的细节和系统的状态
version 返回HBase系统使用的版本
table_help 引导如何使用表引用的命令
whoami 返回当前HBase用户
# 建表
create base_test,personal data,professional data
disable emp 禁用表 enable可以重新启用
is_disabled table name 查看表是否被禁用
disable_all r.* 禁用一系列表
describe emp 表描述
alter t1, NAME => f1, VERSIONS => 5  单元的最大数目设置为5
# 使用alter,可以设置和删除表范围,运算符,如MAX_FILESIZE,READONLY,MEMSTORE_FLUSHSIZE,DEFERRED_LOG_FLUSH等。
alter emp, READONLY 设置表为只读
alter t1, METHOD => table_att_unset, NAME => MAX_FILESIZE
alter table name, delete=> column family
# 删除列簇
alter employee,delete=>professional 
exists emp 判断表是否存在
drop emp 删除表,删除表之前必须先禁用表
drop_all t.*  批量删除
put emp,1,personal data:name,raju 插入数据
put emp,1,personal data:city,hyderabad
put emp,1,personal data:city,Delhi 更新row=1,personal data=city数据的值为Delhi
get emp, 1 查询数据 
get emp, 1, {COLUMN=>personal data:name} 查询指定行、指定列
delete emp, 1, personal data:city  删除数据
deleteall emp,1 删除所有数据
count emp 统计表的行数
truncate table name 禁止删除并重新创建一个表
grant <user> <permissions> [<table> [<column family> [<column; qualifier>]] 
R - 代表读取权限
W - 代表写权限
X - 代表执行权限
C - 代表创建权限
A - 代表管理权限
grant Tutorialspoint, RWXCA 
revoke命令用于撤销用户访问表的权限
revoke Tutorialspoint
user_permission emp 列出了emp表的所有用户权限。

# 新增列簇要先声明
disable emp
alter emp, NAME => daily, VERSIONS =>1
enable emp
# 为新列簇加入数据
put emp,2017-11-30,module:headline,375683
put emp,2017-11-30,module:community,101464
put emp,2017-11-30,module:car,443372
put emp,2017-11-30,module:service,43633
put emp,2017-11-30,module:my,90770
put emp,2017-12-01,module:headline,369003
put emp,2017-12-01,module:community,103500
put emp,2017-12-01,module:car,437643
put emp,2017-12-01,module:service,41259
put emp,2017-12-01,module:my,91521

# 查询数据——通过rowkey
get emp,2017-12-01

# 查询数据——通过rowkey+columnkey
get emp,2017-12-01,{COLUMN => basic:active}
get emp,2017-12-01,basic:login
get emp,2017-12-01,{COLUMN => basic:active, TIMESTAMP => 1513218051477}
get emp,2017-12-01,{COLUMN => basic:active, TIMESTAMP => 1513218051477,VERSIONS => 1}
# 查询数据——通过rowkey+多个columnkey
get emp,2017-12-01,{COLUMN =>[‘basic:active‘,‘basic:newadd‘]}

# 查询数据——通过rowkey+family
get emp,2017-12-01,basic

# 查询行数
count emp
# 删除正行
deleteall emp,row1

# 按columkey查询
scan emp,{COLUMN => basic:active}
scan emp,{COLUMN => [‘basic:active‘,‘basic:newadd‘],LIMIT => 2}

# rowkey模糊查询
scan emp,{FILTER=>org.apache.hadoop.hbase.filter.PrefixFilter.new(org.apache.hadoop.hbase.util.Bytes.toBytes(2017-12))}

# 通过时间戳查询
scan emp,{TIMERANGE =>[1513218313453,1513218314019]}
# rowkey模糊查询——前缀过滤
scan emp,{ FILTER => "PrefixFilter (2017-11)"}
# 查询rowkey中包含12-0的
import org.apache.hadoop.hbase.filter.CompareFilter
import org.apache.hadoop.hbase.filter.SubstringComparator
import org.apache.hadoop.hbase.filter.RowFilter
scan emp, {FILTER => RowFilter.new(CompareFilter::CompareOp.valueOf(EQUAL), SubstringComparator.new(12-0))}
# 查询rowkey 从2017-12-01开始,到2017-12-04截止,包含前不包含后
scan emp, {STARTROW=>2017-12-01, STOPROW=>2017-12-04}
# 查询columnkey中前缀是lo
scan emp, FILTER=>"ColumnPrefixFilter(lo)"
# 查询value中包含57的
scan emp, FILTER=>"ValueFilter(=,substring:57)"

# 计数器
incr emp, 2017-12-01, daily:hits, 1
incr emp, 2017-12-01, daily:hits
# 获取计数器
get_counter emp, 2017-12-01, daily:hits

 

以上是关于hadoop之hbase基本操作的主要内容,如果未能解决你的问题,请参考以下文章

Hbase table之增删查

大数据之API操作HBase

大数据系列之HBase命令行操作

Hadoop之——HBASE结合MapReduce批量导入数据

Hadoop 部署之 HBase

大数据学习系列之三 ----- HBase Java Api 图文详解