1. 程式人生 > >Hbase 統計表行數的3種方式總結

Hbase 統計表行數的3種方式總結

bsp ping love and interval board jar ive add

有些時候需要我們去統計某一個Hbase表的行數,由於hbase本身不支持SQL語言,只能通過其他方式實現。可以通過一下幾種方式實現hbase表的行數統計工作:

1.count命令

最直接的方式是在hbase shell中執行count的命令可以統計行數。

[html] view plain copy
  1. hbase> count ‘t1′
  2. hbase> count ‘t1′, INTERVAL => 100000
  3. hbase> count ‘t1′, CACHE => 1000
  4. hbase> count ‘t1′, INTERVAL => 10, CACHE => 1000
其中,INTERVAL為統計的行數間隔,默認為1000,CACHE為統計的數據緩存。這種方式效率很低,如果表行數很大的話不建議采用這種方式。2. 調用Mapreduce[plain] view plain copy
  1. $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的關聯表*/
[sql] view plain copy
  1. CREATE TABLE hive_hbase_1(key INT,value STRING)
  2. STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler‘
  3. WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key,cf:val")
  4. TBLPROPERTIES("hbase.table.name"="t_hive","hbase.table.default.storage.type"="binary");
/*hive關聯已經存在的hbase*/
[sql] view plain copy
  1. CREATE EXTERNAL TABLE hive_hbase_1(key INT,value STRING)
  2. STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler‘
  3. WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key,cf:val")
  4. TBLPROPERTIES("hbase.table.name"="t_hive","hbase.table.default.storage.type"="binary");

Hbase 統計表行數的3種方式總結