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
*

Reply via email to