1
計數在HBase的行數可能需要很長的時間(見本question例如) - 不切實際的相當大的表/如何快速計算Hbase表中的大致行數?
不過,我不需要確切的數字 - 估計是足夠的(主要是確保增長率符合預期)
是否存在一些間接\不太確切的方法來計算表大小? 可能基於存儲使用情況? (行大小或多或少)
計數在HBase的行數可能需要很長的時間(見本question例如) - 不切實際的相當大的表/如何快速計算Hbase表中的大致行數?
不過,我不需要確切的數字 - 估計是足夠的(主要是確保增長率符合預期)
是否存在一些間接\不太確切的方法來計算表大小? 可能基於存儲使用情況? (行大小或多或少)
您可以使用HBase協處理器。他們是可用的,因爲HBase的0.92
AggregationClient aggregationClient = new AggregationClient(conf);
Scan scan = new Scan();
scan.addFamily(Bytes.toBytes("provide_one_table_family_name"));
long rowCount = aggregationClient.rowCount(Bytes.toBytes("your_table_name"), null, scan);
log.info("row count is " + rowCount);
確保您的HBase-site.xml中有這樣的屬性:
<property>
<name>hbase.coprocessor.user.region.classes</name>
<value>org.apache.hadoop.hbase.coprocessor.AggregateImplementation</value>
</property>