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