HBase-统计表总行数的三种方式
由于Hbase是列式数据库,没有提供类似SQL的数据查询语句,可以通过以下三种方式获取表的总行数。
1. 使用Hbase自带的Count命令
hbase提供了count命令可以在hbase交互界面使用,获取总行数。
hbase> count 'test' hbase> count 'test', INTERVAL => 100000,CACHE => 100000
INTERVAL为统计的行数间隔,默认为1000。使用此种方式效率比较低,一般数据量在千万级别时,耗时6分钟以上,不建议使用。
CACHE是客户端缓存条数,配置正确的CACHE时速度相当快;INTERVAL是分隔多久显示一次结果。
2.使用hbase自动的mapreduce任务统计行数
hbase自带有继承的统计表行数的mapreduce的Job---->org.apache.hadoop.hbase.mapreduce.RowCounter
$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter test
运行结果会在ROWS处体现。
这种方法会启用mapreduce任务去统计行数,在数据量比较大时,可以简单的使用此命令。、
3.使用hive创建外表关联Hbase表
对于存在的hbase表,在hive中创建关联表,然后使用语句统计总行数。
CREATE EXTERNAL TABLE Test(
mRID string,
name string,
nominalVoltage FLOAT
)
ROW FORMAT SERDE'org.apache.hadoop.hive.hbase.HBaseSerDe'
STORED BY'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES("hbase.columns.mapping" = ":key,pw:name,pw:nominalVoltage")
TBLPROPERTIES("hbase.table.name"= "test");
然后在Hive中使用SQL语句进行统计:
select count(0) from test ;
本文来自博客园,作者:业余砖家,转载请注明原文链接:https://www.cnblogs.com/yeyuzhuanjia/p/17769875.html

浙公网安备 33010602011771号