2017-10-07 7 views
0

私はrowkeyが実行するクエリに駆動されるHBaseテーブルを設計しました。ベストプラクティスに続いて、私の行キーのプレフィックスとしてハッシュされた部分が含まれていて、テーブル領域全体に可能な限り均等に行を広げようとしました。HBaseで効率的にクエリを実行するための戦略

私は、次のシナリオが心配です:

私は3つの領域の間に私のHBaseのテーブル分割に数十億行を得ました。この表を使用してREST APIのデータを提供しています。そのため、できるだけ早く行を提供する必要があります。

残念ながら、私はcount "table_name" HBaseのシェルまたはparameters.Itがrowkeyを使用して範囲の走査が全体HBaseのテーブルを襲っているようだstartrowstoprowを含む任意の他のスキャンのためのいずれかを呼び出す場合でも有名なタイムアウトエラーFailed to get result within timeout, timeout=60000msを打っています。

私が好きなこのシナリオでは、2つの質問をすることを考慮すると:

1)実際にタイムアウトエラーを押すことなく可能な限り高速に行の範囲を取得するためのいずれかの戦略がありますか?私は本当にここにポインタをありがとう。

2)私はHBaseが新しいので、HBaseはREST APIに高速検索データを提供するのに最適か、少なくとも適切な解決策であると考えていますか?

答えて

1
  1. 領域サーバ
  2. の数はリージョン・サーバーごとに地域の
  3. 数が非常に高速な応答のために、それ以上ではない50のオーダーであるべき領域の数を増やして増やします。
  4. 可能であれば、クラスタ上のすべてのデータノード上のスポーンリージョンサーバ。地域サーバーを単独で実行しないでください

データサイズが巨大でない場合は、GetとPutのミリ秒待機時間を提供するため、APIに最も適したAerospikeを試すことができます。

詳細については、Hbaseについて: http://bytepadding.com/hbase/

関連する問題