hbase常用操作命令大全
hbase – hadoop database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用hbase技术可在廉价pc server上搭建起大规模结构化存储集群。
hbase是google bigtable的开源实现,类似google bigtable利用gfs作为其文件存储系统,hbase利用hadoop hdfs作为其文件存储系统;google运行mapreduce来处理bigtable中的海量数据,hbase同样利用hadoop mapreduce来处理hbase中的海量数据;google bigtable利用 chubby作为协同服务,hbase利用zookeeper作为对应。
hbase常用命令
.进入shell
图一
.表结构
1. 创建表
语法:create 《table》, {name =》 《family》, versions =》 《versions》}
创建一个user表,并且有一个info列族
hbase(main):002:0》 create ‘user’,‘info’0 row(s) in 1.5890 seconds
=》 hbase::table - user
2. 查看所有表
hbase(main):003:0》 list
table
system.catalog
system.function
system.sequence
system.stats
test.user
user
6 row(s) in 0.0340 seconds
=》 [“system.catalog”, “system.function”, “system.sequence”, “system.stats”, “test.user”, “user”]
3. 查看表详情
hbase(main):004:0》 describe ‘user’
table user is enabled
user
column families description
{name =》 ‘info’, bloomfilter =》 ‘row’, versions =》 ‘1’, in_memory =》 ‘false’, keep_deleted_cells =》 ‘false’, data_block_encoding =》 ‘none’, ttl =》 ‘fore
ver’, compression =》 ‘none’, min_versions =》 ‘0’, blockcache =》 ‘true’, blocksize =》 ‘65536’, replication_scope =》 ‘0’}
1 row(s) in 0.1410 seconds
hbase(main):025:0》 desc ‘user’
table user is enabled
user
column families description
{name =》 ‘info’, bloomfilter =》 ‘row’, versions =》 ‘1’, in_memory =》 ‘false’, keep_deleted_cells =》 ‘false’, data_block_encoding =》 ‘none’, ttl =》 ‘fore
ver’, compression =》 ‘none’, min_versions =》 ‘0’, blockcache =》 ‘true’, blocksize =》 ‘65536’, replication_scope =》 ‘0’}
1 row(s) in 0.0380 seconds
4. 表修改
删除指定的列族
hbase(main):002:0》 alter ‘user’, ‘delete’ =》 ‘info’
updating all regions with the new schema.。.
1/1 regions updated.
done.
0 row(s) in 2.5340 seconds
.表数据
1. 插入数据
语法:put 《table》,《rowkey》,《family:column》,《value》
hbase(main):005:0》 put ‘user’, ‘row1’, ‘info:name’, ‘xiaoming’
0 row(s) in 0.1200 seconds
hbase(main):006:0》 put ‘user’, ‘row2’, ‘info:age’, ‘18’
0 row(s) in 0.0170 seconds
hbase(main):007:0》 put ‘user’, ‘row3’, ‘info:sex’, ‘man’
0 row(s) in 0.0030 seconds
2. 根据rowkey查询某个记录
语法:get 《table》,《rowkey》,[《family:column》,。..。]
hbase(main):008:0》 get ‘user’, ‘row2’
column cell
info:age timestamp=1502368069926, value=18
1 row(s) in 0.0280 seconds
hbase(main):028:0》 get ‘user’, ‘row3’, ‘info:sex’
column cell
info:sex timestamp=1502368093636, value=man
hbase(main):036:0》 get ‘user’, ‘row1’, {column =》 ‘info:name’}
column cell
info:name timestamp=1502368030841, value=xiaoming
1 row(s) in 0.0120 seconds
3. 查询所有记录
语法:scan 《table》, {columns =》 [ 《family:column》,。..。 ], limit =》 num}
扫描所有记录
hbase(main):009:0》 scan ‘user’
row column+cell
row1 column=info:name, timestamp=1502368030841, value=xiaoming
row2 column=info:age, timestamp=1502368069926, value=18
row3 column=info:sex, timestamp=1502368093636, value=man
3 row(s) in 0.0380 seconds
扫描前2条
hbase(main):037:0》 scan ‘user’, {limit =》 2}
row column+cell
row1 column=info:name, timestamp=1502368030841, value=xiaoming
row2 column=info:age, timestamp=1502368069926, value=18
2 row(s) in 0.0170 seconds
范围查询
hbase(main):011:0》 scan ‘user’, {startrow =》 ‘row2’}
row column+cell
row2 column=info:age, timestamp=1502368069926, value=18
row3 column=info:sex, timestamp=1502368093636, value=man
2 row(s) in 0.0170 seconds
hbase(main):012:0》 scan ‘user’, {startrow =》 ‘row2’, endrow =》 ‘row2’}
row column+cell
row2 column=info:age, timestamp=1502368069926, value=18
1 row(s) in 0.0110 seconds
hbase(main):013:0》 scan ‘user’, {startrow =》 ‘row2’, endrow =》 ‘row3’}
row column+cell
row2 column=info:age, timestamp=1502368069926, value=18
1 row(s) in 0.0120 seconds
另外,还可以添加timerange和fitler等高级功能
startrow,endrow必须大写,否则报错;查询结果不包含等于endrow的结果集
4. 统计表记录数
语法:count 《table》, {interval =》 intervalnum, cache =》 cachenum}
interval设置多少行显示一次及对应的rowkey,默认1000;cache每次去取的缓存区大小,默认是10,调整该参数可提高查询速度
hbase(main):020:0》 count ‘user’
3 row(s) in 0.0360 seconds
=》 3
5. 删除
删除列
hbase(main):008:0》 delete ‘user’, ‘row1’, ‘info:age’
0 row(s) in 0.0290 seconds
删除所有行
hbase(main):014:0》 deleteall ‘user’, ‘row2’
0 row(s) in 0.0090 seconds
删除表中所有数据
hbase(main):016:0》 truncate ‘user’
truncating ‘user’ table (it may take a while):
- disabling table.。.
- truncating table.。.
0 row(s) in 3.6610 seconds
.表管理
1. 禁用表
hbase(main):014:0》 disable ‘user’
0 row(s) in 2.2660 seconds
hbase(main):015:0》 describe ‘user’
table user is disabled
user
column families description
{name =》 ‘info’, bloomfilter =》 ‘row’, versions =》 ‘1’, in_memory =》 ‘false’, keep_deleted_cells =》 ‘false’, data_block_encoding =》 ‘none’, ttl =》 ‘fore
ver’, compression =》 ‘none’, min_versions =》 ‘0’, blockcache =》 ‘true’, blocksize =》 ‘65536’, replication_scope =》 ‘0’}
1 row(s) in 0.0340 seconds
hbase(main):016:0》 scan ‘user’, {startrow =》 ‘row2’, endrow =》 ‘row3’}
row column+cell
error: user is disabled.
2. 启用表
hbase(main):017:0》 enable ‘user’
0 row(s) in 1.3470 seconds
hbase(main):018:0》 describe ‘user’
table user is enabled
user
column families description
{name =》 ‘info’, bloomfilter =》 ‘row’, versions =》 ‘1’, in_memory =》 ‘false’, keep_deleted_cells =》 ‘false’, data_block_encoding =》 ‘none’, ttl =》 ‘fore
ver’, compression =》 ‘none’, min_versions =》 ‘0’, blockcache =》 ‘true’, blocksize =》 ‘65536’, replication_scope =》 ‘0’}
1 row(s) in 0.0310 seconds
hbase(main):019:0》 scan ‘user’, {startrow =》 ‘row2’, endrow =》 ‘row3’}
row column+cell
row2 column=info:age, timestamp=1502368069926, value=18
1 row(s) in 0.0280 seconds
3. 测试表是否存在
hbase(main):022:0》 exists ‘user’
table user does exist
0 row(s) in 0.0150 seconds
hbase(main):023:0》 exists ‘user’
table user does not exist
0 row(s) in 0.0110 seconds
hbase(main):024:0》 exists user
nameerror: undefined local variable or method `user‘ for #《object:0x412ebe64》
4. 删除表
删除前,必须先disable
hbase(main):030:0》 drop ’test.user‘
error: table test.user is enabled. disable it first.
here is some help for this command:
drop the named table. table must first be disabled:
hbase》 drop ’t1‘
hbase》 drop ’ns1:t1‘
hbase(main):031:0》 disable ’test.user‘
0 row(s) in 2.2640 seconds
hbase(main):033:0》 drop ’test.user‘
0 row(s) in 1.2490 seconds
hbase(main):034:0》 list
table
system.catalog
system.function
system.sequence
system.stats
user
5 row(s) in 0.0080 seconds
=》 [“system.catalog”, “system.function”, “system.sequence”, “system.stats”, “user”]
SKYLAB公司为对付疫情提出新方案蓝牙网关
由TCL设计、制造的黑莓手机将在2017CES上重磅推出
魅族Pro6 plus竟被称成老年机!难道是黄牛甩货心切?
Socionext成功开发基于AWS视频编码器
e络盟将加强对当今及未来电子设计师的支持服务
hbase常用操作命令大全
铜价涨跌不是唯一影响线缆价格的因素
电容引起的彩电故障检修四例
基于FPGA的汽车视频和图形控制系统设计
探访特斯拉美国加州工厂,揭开神秘面纱
人工智能+脑机接口,“增强人类”离我们越来越近
苹果Vision Pro头显购买需面部扫描,可选刻字
数字资产币币交易所平台开发区块链场外交易所开发
模拟设计中噪声分析的11个误区,你知道吗?
DC-SE 1000位移传感器解决方案
LG宣布参展2019AWE,并将带来多款新品
vivo即将推出120W超快闪充技术13分钟就能充满4000mAh的手机
汽车线束设计流程及要点
紫光国芯未来有权对长江存储进行整合
石墨烯反点纳米带横向异质结带阶匹配及输运特性