0

本番環境の hbase スキーマには 5 つのテーブルがあります。N 個のクライアントがあり、特定の瞬間にアクティブなクライアントは 10% だけです。したがって、残りの 90% のクライアントのデータをアクティブに保つことは、リソースの無駄に思えます。アクティブなクライアントのテーブルを有効にし、残りのクライアントのテーブルを無効にできるように、クライアントごとに 5 つのテーブルを作成することを考えていました。私が読んだことによると、リージョン サーバーごとに 1000 リージョンを超えると、パフォーマンスが低下し始めます。しかし、私はその限界に達しないと確信しています。私の質問

  1. テーブルのセットを無効にすると、hbase への負荷が少なくなりますか?
  2. これは全体的に健全な戦略のように思えますか?
4

1 に答える 1

0

パフォーマンスについてのあなたの期待は何ですか?

どのクライアントがアクティブ/非アクティブであるかをどのように判断しますか?

非アクティブなクライアントの未使用テーブルを自動的に無効にするにはどうすればよいですか?

それでは、読み取りのアクセスパターンは何ですか? クライアントは単一のテーブルのデータのみを読み取りますか?

多くのテーブルを処理すると、いくつかの問題が発生します。

  • データがなくても、1 つのテーブルが少なくとも 1 つのリージョンで構成されるため、より多くのリージョン。HBase は、よりアクティブな StoreFile などを処理する必要があります。
  • ディスク (HFile) に定期的にフラッシュされるのではなく、構成されたしきい値に達した場合にのみフラッシュされるため、memstore (つまり、メモリ使用量) が増加します。
于 2012-08-24T06:11:39.650 に答える