You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Orit Alul <Or...@mediamind.com> on 2010/09/19 16:09:11 UTC

org.apache.hadoop.hbase.client.NoServerForRegionException: Timed out trying to locate root region

Hi,

I'm trying to run the java client using the remote client API vs a remote machine on which HBase is configured to work in a semi-distributed mode.
When I run the sell on the remote machine everything works just fine (I can create tables set and get data)
It seems like the client succeeds in connecting with the zookeeper server, but fails on connecting to the region server.
I tried to debug the client and I found two weird things:

1.        It seems that the outOfSafeMode is always false.

2.       When I eliminate the safe mode check a request is sent to the zookeeper to get the address of the region server "/hbase/root-region-server". The response address is 127.0.0.1:60020 which is completely wrong since the region server runs on the remote machine.
Is this a configuration issue?

Following is the exception I get:

10/09/16 14:33:48 INFO zookeeper.ClientCnxn: Server connection successful
org.apache.hadoop.hbase.client.NoServerForRegionException: Timed out trying to locate root region
        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRootRegion(HConnectionManager.java:983)
        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:625)
        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:601)
        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegionInMeta(HConnectionManager.java:670)
        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:630)
        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:601)
        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegionInMeta(HConnectionManager.java:670)
        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:634)
        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:601)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:134)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:112)
        at hbaseclient.HBaseBMClient.<init>(HBaseBMClient.java:23)
        at common.BMManager.createStorageAccordingToClientType(BMManager.java:170)
        at common.BMManager.main(BMManager.java:66)


Appreciate your assistance and advice,
Thanks,
Orit


Re: org.apache.hadoop.hbase.client.NoServerForRegionException: Timed out trying to locate root region

Posted by Jean-Daniel Cryans <jd...@apache.org>.
That 127.0.0.1 is for HBase, which means that the root region from
HBase's point of view is on the local host (which makes sense because
in pseudo-distributed mode the region server runs in the same JVM as
the master).

HBase does a reverse lookup on the machine's hostname in order to get
its IP address, is your hostname on the HBase server pointing to
127.0.0.1? If so, do change the OS configuration.

J-D

On Sun, Sep 19, 2010 at 7:09 AM, Orit Alul <Or...@mediamind.com> wrote:
> Hi,
>
> I'm trying to run the java client using the remote client API vs a remote machine on which HBase is configured to work in a semi-distributed mode.
> When I run the sell on the remote machine everything works just fine (I can create tables set and get data)
> It seems like the client succeeds in connecting with the zookeeper server, but fails on connecting to the region server.
> I tried to debug the client and I found two weird things:
>
> 1.        It seems that the outOfSafeMode is always false.
>
> 2.       When I eliminate the safe mode check a request is sent to the zookeeper to get the address of the region server "/hbase/root-region-server". The response address is 127.0.0.1:60020 which is completely wrong since the region server runs on the remote machine.
> Is this a configuration issue?
>
> Following is the exception I get:
>
> 10/09/16 14:33:48 INFO zookeeper.ClientCnxn: Server connection successful
> org.apache.hadoop.hbase.client.NoServerForRegionException: Timed out trying to locate root region
>        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRootRegion(HConnectionManager.java:983)
>        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:625)
>        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:601)
>        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegionInMeta(HConnectionManager.java:670)
>        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:630)
>        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:601)
>        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegionInMeta(HConnectionManager.java:670)
>        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:634)
>        at org.apache.hadoop.hbase.client.HConnectionManager$TableServers.locateRegion(HConnectionManager.java:601)
>        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:134)
>        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:112)
>        at hbaseclient.HBaseBMClient.<init>(HBaseBMClient.java:23)
>        at common.BMManager.createStorageAccordingToClientType(BMManager.java:170)
>        at common.BMManager.main(BMManager.java:66)
>
>
> Appreciate your assistance and advice,
> Thanks,
> Orit
>
>