我的hbase表包含数百万行。如果我们进行扫描,则至少需要一个小时才能显示所有记录。我们将日期存储为行键。我需要获取日期的最小值和最大值。我看到了一个实用程序org.apache.hadoop.hbase.mapreduce.RowCounter,它在5分钟内计算了数百万行。以同样的方式对我的工作有什么办法吗?仅供参考:我使用的是java。
答案 0 :(得分:2)
如果您使用HBase 0.98,您的问题应该很容易。您所要做的就是获取表中的第一行和最后一行(因为条目是有序的):
您可以在此处找到有关反向扫描的更多信息:https://issues.apache.org/jira/browse/HBASE-4811
如果您使用的是以前版本的HBase,那么您应该考虑为您的表使用某些模型/约定。第一行很容易获得(再次只是在表格上扫描,限制为1),但对于最后一行,您遗憾的是没有反向扫描功能。
由于HBase 0.98的解决方案非常简单,无需进行解决方法,如果您没有该版本,我建议您进行迁移。
答案 1 :(得分:1)
你的方向正确。 RowCounter用法是计算拥有数百万条记录的Hbase行的有效方法。您可以获取RowCounter的源代码并稍微调整一下以实现您的要求
我希望它有助于你的事业