There are folks who know this better than me, but here's my understanding: .META. is consulted to find a region of a table for a specific row key. So only after consulting .META. do you know which regionserver handles your key.
Now, how do you find regions in .META. itself (So you can consult it to find the correct region of your table)? In order to find the right regionserver you... first have to know the right regionserver... It's a chicken and egg problem. That's where -ROOT- comes into play. -ROOT- always has exactly one region and its location is known. .META. is (currently) always one region (so in that respect -ROOT- is not *currently* needed, but that will probably change). Neither -ROOT- not .META. are actually single points of failure. If their regionserver dies they'll be re-assigned. It might just take a little bit. Stack, please chime in, if I didn't get this right :) -- Lars ----- Original Message ----- From: vamshi krishna <[email protected]> To: [email protected]; lars hofhansl <[email protected]> Cc: Sent: Sunday, August 28, 2011 11:52 PM Subject: Re: Where are .META. and ROOT tables data Hi lars and folks, Can anyone please explain the exact purpose of having -ROOT- except storing the locations of the regions in .META. (meta data table) ? I could not find the special use and importance of -ROOT- in HBase anywhere. Even without ROOT being stored in a particular region of HBase , we can have the .META. itself distributed across RSs and client requests be redirected to any Region Server , which is chosen randomly. Then using the Distributed Hash Table we can resolve the client's requesting location i.e which RS will hold the region responsible for location. Now the clients request is actually handled by the resultant RS. The *main idea* being is , we can get rid off the single point failure with respect to -ROOT- stored in a single region. On Thu, Aug 18, 2011 at 12:13 PM, vamshi krishna <[email protected]>wrote: > Thank you very much Lars..! > > > On Thu, Aug 18, 2011 at 10:30 AM, lars hofhansl <[email protected]>wrote: > >> Hi Vamshi, >> >> at this point HBase needs a version of Hadoop that did not have a stable >> release, yet. >> >> >> Check out:http://hbase.apache.org/book/notsoquick.html For more details. >> We are using the CDH3 distribution and it works very well so far. >> We also have successfully used custom builds of HBase trunk against the >> standard CDH3 Hadoop version, by just replacing the hadoop-xxx.jar in >> hbase-xxx/lib. >> >> >> When you configured HBase you defined a root directory in hbase-site.xml >> (if not, see above link), that's where you will find META and ROOT tables. >> >> (The root directory would be a local directory in local mode, or a >> directory in HDFS). >> >> >> -- Lars >> >> >> >> ________________________________ >> From: vamshi krishna <[email protected]> >> To: [email protected] >> Sent: Wednesday, August 17, 2011 8:05 PM >> Subject: Where are .META. and ROOT tables data >> >> Hi all, i want to know the actual location of .META. and ROOT data after >> we >> install HBase in our machine. i mean, can i directly see that data in a >> particular file or something like that unlike querying and getting some >> specific data from them?? >> And the most important doubt is, which version of hadoop i should use to >> run >> HBase at current time.. means asper latest versions which versions are >> compatible? >> * >> Thank you.. >> >> >> Vamshi Krishna >> * > > > > > -- > *Regards* > * > Vamshi Krishna > * > -- *Regards* * Vamshi Krishna *
