2

我有集群设置Hbase

1HMaster节点和3个Region Server

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

是否Hfile有排序的键值记录(rowKey:cf:TimeStamp)?

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

我读到 META 表维护表信息,如 (Table_name, Region(StartKey-EndKey)) 是否正确?

4

1 回答 1

1

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

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将以排序方式将它们合并在一起(称为主要压缩)。

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

于 2012-12-04T20:54:37.840 回答