在HBase中有效查询的策略

时间:2017-10-07 16:47:06

标签: hbase

我设计了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提供快速检索数据的最佳或至少是适当的解决方案吗?考虑到搜索实际上是按行键的范围进行扫描?

1 个答案:

答案 0 :(得分:1)

  1. 增加区域服务器的数量
  2. 增加地区数量
  3. 每个区域服务器的区域数量应该不超过50,而不是快速响应。
  4. 如果可能在群集上的所有数据节点上生成区域服务器。不要孤立地运行区域服务器
  5. 如果您的数据量不是很大,您可以尝试使用最适合API的Aerospike,因为它为get和put提供了毫秒级的延迟。

    详细了解Hbase: http://bytepadding.com/hbase/