The catalog table
hbase:meta exists as an HBase table and is filtered out of the HBase
list command, but is in fact a table just like any other.
-ROOT- table was removed in HBase 0.96.0. Information here should
be considered historical.
-ROOT- table kept track of the location of the
.META table (the previous name for the table now called
hbase:meta) prior to HBase
-ROOT- table structure was as follows:
.META. region key (
info:regioninfo (serialized HRegionInfo
instance of hbase:meta)
info:server (server:port of the RegionServer holding
info:serverstartcode (start-time of the RegionServer process holding
hbase:meta table (previously called
.META.) keeps a list
of all regions in the system. The location of
hbase:meta was previously
tracked within the
-ROOT- table, but is now stored in Zookeeper.
hbase:meta table structure is as follows:
Region key of the format (
[table],[region start key],[region
HRegionInfo instance for this region)
info:server (server:port of the RegionServer containing this
info:serverstartcode (start-time of the RegionServer process
containing this region)
When a table is in the process of splitting, two other columns will be created, called
info:splitB. These columns represent the two
daughter regions. The values for these columns are also serialized HRegionInfo instances.
After the region has been split, eventually this row will be deleted.
The empty key is used to denote table start and table end. A region with an empty start key is the first region in a table. If a region has both an empty start and an empty end key, it is the only region in the table
In the (hopefully unlikely) event that programmatic processing of catalog metadata is required, see the Writables utility.
First, the location of
hbase:meta is looked up in Zookeeper. Next,
hbase:meta is updated with server and startcode values.
For information on region-RegionServer assignment, see Section 9.7.2, “Region-RegionServer Assignment”.