Here is the code for locateRegion:
@Override
public List<HRegionLocation> locateRegions(final byte [] tableName)
throws IOException {
// TODO implement. use old stuff or new stuff?
return null;
}
As you can see, it's like what Nicolas is saying. Always return null.
However, relocateRegion is calling a private locateRegions which is
not returning null.... You might want to try that?
Also, I played few weeks ago with the region balancing. You can take
a look here to see what I did.
http://www.spaggiari.org/index.php/hbase/changing-the-hbase-default-loadbalancer
You can do yours based on that.
Nicolas, should we not have locateRegion "simply" calling the private
locateRegion method?
JM
2013/1/2, Nicolas Liochon <[email protected]>:
> Hi,
>
> It's actually not implemented (I will update the javadoc for the latest
> version)
> You can use locateRegion(final byte [] tableName, final byte [] row), and
> iterates on all region start keys to get all the regions.
>
> Cheers,
>
> Nicolas
>
>
>
>
> On Wed, Jan 2, 2013 at 5:17 PM, Lyska Anton <[email protected]> wrote:
>
>> Hi all,
>>
>> I want to write simple tool for rebalancing regions in cluster.
>> For that I need current location of all regions.
>> I've found method HConnection.locateRegions(**tableName), but it always
>> returns null.
>> Also, i've tried to call HConnection.locateRegion(**regionName), and it
>> returns null too.
>>
>> sample code:
>>
>> Configuration config = HBaseConfiguration.create();
>> config.set("hbase.zookeeper.**quorum", host);
>>
>> HConnection connection = HConnectionManager.**
>> createConnection(config);
>> List<HRegionLocation> locations =
>> connection.locateRegions(**tableName);
>> //return null here
>>
>> HBase Version 0.92.1-cdh4.1.2
>>
>> Thanks in advance.
>>
>>
>