0.96以下版本的三層架構
meta表的rowKey由表名、起始key、時間戳組成,如果起始key為空,則表示第一個region,按照起始key排序使得行鍵不需要終止key就能表示范圍。 值則是終止Key、列族、列值,該RegionServer的地址等等。
meta表由于數據量過大可能被分割由多個RS存儲,因此又設置了root表存放meta表中所有的region,以及該region所屬的meta表的位置。
因此三層架構需要三次跳轉才能獲取到HRegion,如果緩存失效則需要6次,理論上三層架構最少都能存儲2ZB的數據。
0.96以上版本的雙層架構,三層架構使hbase最少存2ZB的數據,事實上根本用不到這么多,于是刪除了root表,只使用meta表定位,meta表的一個region最多可以定位16TB的行鍵范圍,假設一個行鍵范圍包括10條數據,就已經是160TB了,假如一個region大于128M,則更多了,因此根本不需要root表。