You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Sean Busbey (JIRA)" <ji...@apache.org> on 2015/07/14 23:23:05 UTC

[jira] [Created] (HBASE-14078) improve error message when HMaster can't bind to port

Sean Busbey created HBASE-14078:
-----------------------------------

             Summary: improve error message when HMaster can't bind to port
                 Key: HBASE-14078
                 URL: https://issues.apache.org/jira/browse/HBASE-14078
             Project: HBase
          Issue Type: Improvement
          Components: master
    Affects Versions: 2.0.0
            Reporter: Sean Busbey
             Fix For: 2.0.0


When the master fails to start becahse hbase.master.port is already taken, the log messages could make it easier to tell.

{quote}
2015-07-14 13:10:02,667 INFO  [main] regionserver.RSRpcServices: master/a1221.halxg.cloudera.com/10.20.188.121:16000 server-side HConnection retries=350
2015-07-14 13:10:02,879 INFO  [main] ipc.SimpleRpcScheduler: Using deadline as user call queue, count=3
2015-07-14 13:10:02,895 ERROR [main] master.HMasterCommandLine: Master exiting
java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster
        at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2258)
        at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:234)
        at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:140)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)
        at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2272)
Caused by: java.net.BindException: Address already in use
        at sun.nio.ch.Net.bind0(Native Method)
        at sun.nio.ch.Net.bind(Net.java:444)
        at sun.nio.ch.Net.bind(Net.java:436)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
        at org.apache.hadoop.hbase.ipc.RpcServer.bind(RpcServer.java:2513)
        at org.apache.hadoop.hbase.ipc.RpcServer$Listener.<init>(RpcServer.java:599)
        at org.apache.hadoop.hbase.ipc.RpcServer.<init>(RpcServer.java:2000)
        at org.apache.hadoop.hbase.regionserver.RSRpcServices.<init>(RSRpcServices.java:919)
        at org.apache.hadoop.hbase.master.MasterRpcServices.<init>(MasterRpcServices.java:211)
        at org.apache.hadoop.hbase.master.HMaster.createRpcServices(HMaster.java:509)
        at org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:535)
        at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:351)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2253)
        ... 5 more
{quote}

I recognize that the "RSRpcServices" log message shows port 16000, but I don't know why a new operator would. Additionally, it'd be nice to tell them that the port is controlled by {{hbase.master.port}}. Maybe give a hint on how to see what's using the port. Could be too os-dist specific?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)