2

私は次のクラスター設定をしていますHbase

1HMasterノードと3つのリージョンサーバー

私はそれを知りたいです:テーブルに複数の行を挿入するとき、Hbaseが複数のregionServerにレコードを分割する方法よりも?

Hfileキー値records()をソートしましたかrowKey:cf:TimeStamp

はいの場合、Hbaseがトランザクションテーブルでソートされたキーの順序を維持する方法。

METAテーブルが(Table_name、Region(StartKey-EndKey))のようなテーブル情報を保持していることを読みましたが、それは正しいですか?

4

1 に答える 1

1

私はあなたの質問に少し混乱していますが、複数の行をテーブルに挿入すると、.META.テーブルが検索されて、どのリージョンがミューテーションを取得する必要があるかが検索され、クライアントはそれを対応する hbase リージョン サーバーに送信します。

HFiles は、キー値を持つ並べ替えられたファイルであり、次のようになります。

<keylength> <valuelength> <rowlength> <row> <columnfamilylength> <columnfamily> <columnqualifier> <timestamp> <keytype> <value>

http://hbase.apache.org/book/hfilev2.html

http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/KeyValue.html

並べ替えはすべての圧縮で発生します。つまり、行を追加すると、 に追加されmemtableます。十分な行が入力されると、memtable並べ替えられて にダンプされますHFile(つまり、マージ圧縮)。HBaseに複数の HFile が存在する場合、regionそれらはソートされた方法ですべてまとめてマージされます (Major Compaction と呼ばれます)。

META テーブルは、テーブル名、リージョンの開始キー、終了キー、サービスを提供しているサーバーなどのリージョン情報を維持します。

于 2012-12-04T20:54:37.840 に答える