目录
Scan
创建表
Count
清空表数据
删除数据
删除表
删除列簇
判断表是否为‘enable’
插入
Region管理
Scan
- 查询某个表某个列的数据:
scan 'tableName',{COLUMN=>列族:列,LIMIT=>需要查看条数}
- 指定开始Rowkey查询
scan 'tableName',{STARTROW=>'0693482750769917',LIMIT=>10}
- 指定时间范围查询
scan 'tableName', { TIMERANGE => [1303668804, 1303668904]}
- 指定多列
scan 'tableName', {COLUMNS => ['c1','c2'], TIMERANGE => [1303668804, 1303668904]}
创建表
- 创建表,snappy压缩,版本1
create 'tableName', {NAME => 'fn', VERSIONS=>1,COMPRESSION=>'snappy'}
Count
- INTERVAL:每10000条显示一次,CACHE 每次读取的缓存区大小,调整该参数可提高查询速度
count 'tableName',{INTERVAL=>10000,CACHE=>10000}
清空表数据
truncate 'table_name'
删除数据
#删除rowkey为temp的记录的'info:age'字段
delete 'member','temp','info:age'
#删除整行
deleteall 'member','temp'
删除表
hbase(main)> disable 't1'
hbase(main)> drop 't1'
删除列簇
disable ‘table1’
alter ‘table1’, {NAME=>’tab1_add’, METHOD=>’delete’}
enable ‘table1’
判断表是否为‘enable’
is_enabled 'table1'
插入
put 表名 ,rowkey,列名(列族:列名),value
Region管理
移动Region
# 语法:move 'encodeRegionName', 'ServerName'# encodeRegionName指的regioName后面的编码,ServerName指的是master-status的Region Servers列表# 示例hbase(main)>move '4343995a58be8e5bbc739af1e91cd72d', 'db-41.xxx.xxx.org,60020,1390274516739'
encodeRegionName
ServerName
Merge Region
1 > merge_region 'encodeRegionName1', 'encodeRegionName2'
2 > merge_region 'encodeRegionName1', 'encodeRegionName2',true
场景一:很多带有TTL(数据过期时间)的时间序列业务通常在一段时间之后出现很多空Region,里面没有任何数据。当然,空Region必然也不再接收任何读写请求。
如果集群中空Region很多,则很有可能造成系统负载不均衡,某些RegionServer上空Region少,相应的读写QPS负载很高;而另一些RegionServer上空Region多,相应的读写QPS负载很低。这类负载不均衡并不容易察觉,因为从Master UI角度看每个RegionServer上的Region数量基本相当。
另外,对于那些HBase规划并不是很好的业务来讲,有可能出现很多的冷Region,冷Region接收的读写请求相比其他Region来说非常少,这也会造成系统负载不均衡现象。
对于这些空Region以及冷Region,可以使用merge_region将其合并。需要注意的是,使用merge_region对这些Region进行合并的时候只能前后相连的Region合并,不相连的Region无法实现合并。
场景二:在某些特殊的异常情况下,集群中会出现overlap现象,比如两个Region的startkey相同但stopkey不同,或者startkey不同但stopkey相同。在这种异常情况下只能使用merge_region强制合并这些overlap的Region,merge_region命令需要加上参数true。
无论是哪种场景,如果需要连续合并多个相连的Region集,比如region1,region2和region3都需要合并,先执行merge_region region1,region2得到region12,再执行merge_region region12,region3。合并完region1和region2之后需要对region12执行Compaction,之后再合并region12和region3,这样将没有异常,否则会报异常。
本段参考《Hbase 原理与实践》
开启/关闭Region
# 语法:balance_switch true|falsehbase(main)> balance_switch
手动Split
# 语法:split 'regionName', 'splitKey'
手动触发major compaction
#语法:#Compact all regions in a table:hbase> major_compact 't1'#Compact an entire region:hbase> major_compact 'r1'#Compact a single column family within a region:hbase> major_compact 'r1', 'c1'#Compact a single column family within a table:hbase> major_compact 't1', 'c1'
注意事项
truncate 与 truncate_preserve 区别
truncate 会直接删除表的数据,同时也会删除表的预分区等信息
truncate_preserve 会直接删除表,并重新建表,会保留预分区信息,建议使用该方法
https://datamining.blog.csdn.net/article/details/89308003