【问题标题】:Strategies to query efficiently in HBase在 HBase 中高效查询的策略
【发布时间】:2017-10-07 16:47:06
【问题描述】:

我设计了 HBase 表,其中我的 rowkey 被驱动到我需要在其上运行的查询。遵循最佳实践,我将一个散列部分作为我的行键的前缀,试图在我的表区域中尽可能统一地分布行。

我担心以下情况:

我的 HBase 表中有数十亿行分为 3 个区域。我正在使用此表为 REST API 提供数据,因此,它需要尽可能快地提供行。

不幸的是,我遇到了著名的超时错误Failed to get result within timeout, timeout=60000ms,即使我在 hbase shell 中调用count "table_name" 或任何其他扫描(包括startrowstoprow 参数)。似乎使用范围扫描rowkey 正在扫描整个 hbase 表。

考虑到这种情况,我想问两个问题:

1) 有没有什么策略可以在不遇到超时错误的情况下真正尽可能快地检索行范围?我真的很感谢这里的任何指示。

2) 由于我是 HBase 的新手,考虑到搜索实际上是按行键范围进行扫描,您认为 HBase 是向 REST API 提供快速检索数据的最佳或至少足够的解决方案吗?

【问题讨论】:

    标签: hbase


    【解决方案1】:
    1. 增加区域服务器的数量
    2. 增加区域数量
    3. 每个区域服务器的区域数量应为 50 数量级,但不超过响应速度非常快的数量。
    4. 如果可能,在集群上的所有数据节点上生成区域服务器。不要单独运行区域服务器

    如果您的数据量不大,您可以尝试使用最适合 API 的 Aerospike,因为它为 get 和 put 提供毫秒级的延迟。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-04
      • 1970-01-01
      • 1970-01-01
      • 2016-07-07
      • 1970-01-01
      • 2023-03-20
      • 2016-01-17
      • 1970-01-01
      相关资源
      最近更新 更多