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)