HBase应用(3.1)分布式HBase

切分和分配大表

HBase表的数据是TB甚至PB级别,所以在一台机器存放一张表是不合理的,HBase可以将一张表切分成多个部分,形成多个region,region的大小由HBase.hregion.max.filesize决定,当一个region大于该值时会被切分成两个region,一台RegionServer上同时托管多个region。

HBase region拆分

如何找到region

客户端读取数据时是如何从集群中找到要读取的RegionServer呢?

  • 通过 -ROOT-.META.表来查找region

    HBase通过 -ROOT-.META.表来查找region,-ROOT-表比较特殊,不会被拆分成2个region。当访问某一行数据时,先从-ROOT-表查找,-ROOT-表指向.META.表的region,.META.表存储的是入口地址,客户端使用入口地址找到需要访问的region所在RegionServer。

    HBase region拆分

  • 如何查找-ROOT-?

    -ROOT-表所在region信息存储在zookeeper中。