目录

 

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

Hbase Shell 介绍_删除表

ServerName 

Hbase Shell 介绍_创建表_02

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|false
 hbase(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 会直接删除表,并重新建表,会保留预分区信息,建议使用该方法