我设计了HBase表,我的rowkey
被驱动到我需要在其上运行的查询。按照最佳实践,我将散列部分作为我的rowkeys的前缀,尝试在我的表区域中尽可能均匀地分布行。
我关注以下情况:
我的HBase表中有数十亿行分为3个区域。我使用此表为REST API提供数据,因此,它需要尽可能快地提供行。
不幸的是,即使我在hbase shell中调用Failed to get result within timeout, timeout=60000ms
或包含count "table_name"
和{{1}的任何其他扫描,我也会遇到着名的超时错误startrow
}参数。似乎使用stoprow
按范围扫描正在扫描整个hbase表。
考虑到这种情况,我想问两个问题:
1)是否有任何策略可以在不超出超时错误的情况下尽快检索行范围?我非常感谢这里的任何指示。
2)作为我在HBase中的新成员,您认为HBase是向REST API提供快速检索数据的最佳或至少是适当的解决方案吗?考虑到搜索实际上是按行键的范围进行扫描?
答案 0 :(得分:1)
如果您的数据量不是很大,您可以尝试使用最适合API的Aerospike,因为它为get和put提供了毫秒级的延迟。
详细了解Hbase: http://bytepadding.com/hbase/