On 3/21/11 10:13 PM, Stack wrote:
On Mon, Mar 21, 2011 at 7:19 PM, Adam Phelps<a...@opendns.com>  wrote:
It looks like we've come up against a problem that looks identical to the
one you described.  How did you go about manually inserting the two child
regions?


You know the daughter regions because they should be listed when you
look at the parent in .META.  It should have info:splitA and
info:splitB columns with the daughters listed.  Take the encoded name
of the daughters.  Look in hdfs.  Are the regions there?  If so,
insert regions named the same as those in info:splitA and info:splitB.
  Take the parent region for the template making the HRegionInfo.

Poke around in bin/*rb scripts to see examples of reading HRegionInfo,
amending it, and insert into .META.

We attempted to do this via the "put" command in the shell, however when we then try to read the entry we get a VersionMismatchException:

ERROR: org.apache.hadoop.io.VersionMismatchException: null
Backtrace: VersionedWritable.java:46:in `org.apache.hadoop.io.VersionedWritable.readFields' HRegionInfo.java:625:in `org.apache.hadoop.hbase.HRegionInfo.readFields' Writables.java:105:in `org.apache.hadoop.hbase.util.Writables.getWritable' Writables.java:75:in `org.apache.hadoop.hbase.util.Writables.getWritable' Writables.java:119:in `org.apache.hadoop.hbase.util.Writables.getHRegionInfo' Writables.java:130:in `org.apache.hadoop.hbase.util.Writables.getHRegionInfoOrNull'

Looking through the code (we're using CDH3B4) it looks like the version in HRegionInfo is hardcoded to 0, whereas the version used by Put (in Put.java) is hardcoded to 1.

Is there an alternative means of adding an entry for the child regions? I've looked at the raw data in /hbase/.META. however it looks to be binary data and so I'm hesitant to try editing it that way if at all possible.

- Adam

Reply via email to