Hbase如何拆分多个regionServer中的记录?

时间:2012-12-04 16:16:51

标签: hadoop hbase hdfs

我有Hbase的群集设置:

1 HMaster节点和3个区域服务器

我想知道:当我们在表中插入多行时,Hbase如何在多个regionServer之间拆分记录?

Hfile是否对键值记录(rowKey:cf:TimeStamp)进行了排序?

如果是,则Hbase如何维护事务表中的排序键顺序。

我读过META表的信息表(例如,Table_name,Region(StartKey-EndKey))是否正确?

1 个答案:

答案 0 :(得分:1)

我对你的问题感到有些困惑,但是当你在表格中插入多行时,会对.META.表进行查找,以找出应该获得突变的区域,然后客户端将其发送到相应的hbase regionserver。

HFile确实是带有键值的文件,看起来更像是

  

<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

排序发生在所有压缩中,即当你添加一行时,它会被添加到memtablememtable一旦在HFile中填充了足够的行,它将对它们进行排序并将它们转储到{{1} (即合并压缩)。当region HBase存在多个HF时,它们将以排序的方式将它们合并在一起(称为主要压缩)。

META表维护区域信息,例如表名,区域开始键,结束键以及服务它的服务器。