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'

将hdfs上的数据push到hbase中

 hadoop fs -put -f '/data/bglogs/databoardshells/app_ctr.txt' /tmp/hbase-input/
 hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=HBASE_ROW_KEY,ctr:c_key,ctr:show,ctr:click app_client /tmp/hbase-input/app_ctr.txt

 
原文地址:https://www.cnblogs.com/wangbin2188/p/8252630.html