zz:http://blog.csdn.net/chaolovejia/article/details/46328983 有些时候需要我们去统计某一个hbase表的行数,由于hbase本身不支持SQL语言,只能通过其他方式实现。可以通过一下几种方式实现hbase表的行数统计工作: 1.count命令 最直接的方式是在hbase shell中执行count的命令可以统计行数。
- hbase> count ‘t1′
- hbase> count ‘t1′, INTERVAL => 100000
- hbase> count ‘t1′, CACHE => 1000
- hbase> count ‘t1′, INTERVAL => 10, CACHE => 1000
其中,INTERVAL为统计的行数间隔,默认为1000,CACHE为统计的数据缓存。这种方式效率很低,如果表行数很大的话不建议采用这种方式。
2. 调用Mapreduce - $HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter ‘tablename’
这种方式效率比上一种要搞很多,调用的hbase jar中自带的统计行数的类。
3.hive over hbase 如果已经见了hive和hbase的关联表的话,可以直接在hive中执行sql语句统计hbase表的行数。 hive over hbase 表的建表语句为: /*创建hive与hbase的关联表*/
- CREATE TABLE hive_hbase_1(key INT,value STRING)
- STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
- WITH SERDEPROPERTIES ('hbase.columns.mapping'=':key,cf:val')
- TBLPROPERTIES('hbase.table.name'='t_hive','hbase.table.default.storage.type'='binary');
/*hive关联已经存在的hbase*/
- CREATE EXTERNAL TABLE hive_hbase_1(key INT,value STRING)
- STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
- WITH SERDEPROPERTIES ('hbase.columns.mapping'=':key,cf:val')
- TBLPROPERTIES('hbase.table.name'='t_hive','hbase.table.default.storage.type'='binary');
|