2017-10-07 99 views
0

我設計了HBase表,我的rowkey被驅動到我需要運行的查詢。遵循最佳實踐,我將一個散列部分作爲我的rowkeys的前綴,試圖在我的表區域儘可能均勻地分散行。在HBase中有效查詢的策略

我擔心以下情形:

我在3個區之間我的HBase的表拆分了數十億行的。我使用此表爲REST API提供數據,因此,它需要儘可能快地提供行。

不幸的是,我打了著名超時錯誤Failed to get result within timeout, timeout=60000ms即使我調用要麼count "table_name"在HBase的外殼或任何其他的掃描,包括startrowstoprow parameters.It似乎掃描使用rowkey範圍正在席捲整個HBase的表。

考慮到這種情況,我想請教兩個問題:

1)是否有任何策略要真正檢索行的範圍內儘可能快地沒有擊中超時錯誤?我很欣賞這裏的任何指針。

2)由於我是HBase的新手,考慮到搜索實際上是通過一系列rowkeys進行掃描,您認爲HBase是最好還是至少可以提供快速檢索數據到REST API的解決方案?

回答

1
  1. 增加區域服務器
  2. 數量增加的區域數
  3. 每個區域服務器地區的數量應該是50不多說爲了響應速度非常快。
  4. 如果可能,請在羣集上的所有數據節點上產生區域服務器。不要孤立運行區域服務器

如果您的數據量不是很大,您可以嘗試使用Aerospike最適合的API,因爲它提供了毫秒級的獲取和放置延遲。

要了解Hbase的詳細信息: http://bytepadding.com/hbase/