I have setup a single node with hadoop and hbase in pseudo distributed mode, of course zookeeper and the regionserver is also installed.
Everything runs smoothly but when it comes to connect to hbase via the Java Client API, I'm getting an exception.
I tried for hours to solve this problem, but I'm not able to. I can telnet to remotemachine:60000, so it's not a port firewall problem. The logs also don't report anything special.
(note from the logs debianhdfs is correctly set to the IP in the hostfile)
12/05/06 19:47:27 INFO zookeeper.ClientCnxn: Opening socket connection to server debianhdfs/192.168.137.135:2181 12/05/06 19:47:27 INFO zookeeper.ClientCnxn: Socket connection established to debianhdfs/192.168.137.135:2181, initiating session 12/05/06 19:47:27 INFO zookeeper.ClientCnxn: Session establishment complete on server debianhdfs/192.168.137.135:2181, sessionid = 0x13721c707ff002f, negotiated timeout = 40000 12/05/06 19:47:28 INFO client.HConnectionManager$HConnectionImplementation: getMaster attempt 0 of 1 failed; no more retrying. java.net.ConnectException: Connection refused: no further information at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(Unknown Source) at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206) at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:408) at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:328) at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:883) at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:750) at org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:257) at $Proxy4.getProtocolVersion(Unknown Source) at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:419) at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:393) at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:444) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:567) at org.apache.hadoop.hbase.client.HBaseAdmin.(HBaseAdmin.java:95) at org.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable(HBaseAdmin.java:1296) at Main.main(Main.java:57) Exception in thread "main" org.apache.hadoop.hbase.MasterNotRunningException: debianhdfs:60000 at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:603) at org.apache.hadoop.hbase.client.HBaseAdmin.(HBaseAdmin.java:95) at org.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable(HBaseAdmin.java:1296) at Main.main(Main.java:57)
In standalone mode, non pseudo distributed I get the following exception with the same code:
12/05/06 20:32:49 INFO zookeeper.ClientCnxn: Opening socket connection to server debianhdfs/192.168.137.135:2181 12/05/06 20:32:49 INFO zookeeper.ClientCnxn: Socket connection established to debianhdfs/192.168.137.135:2181, initiating session 12/05/06 20:32:49 INFO zookeeper.ClientCnxn: Session establishment complete on server debianhdfs/192.168.137.135:2181, sessionid = 0x1372210f8fe0004, negotiated timeout = 40000 12/05/06 20:32:49 INFO client.HConnectionManager$HConnectionImplementation: ZooKeeper available but no active master location found 12/05/06 20:32:49 INFO client.HConnectionManager$HConnectionImplementation: getMaster attempt 0 of 1 failed; no more retrying. org.apache.hadoop.hbase.MasterNotRunningException at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:564) at org.apache.hadoop.hbase.client.HBaseAdmin.(HBaseAdmin.java:95) at org.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable(HBaseAdmin.java:1296) at Main.main(Main.java:57) Exception in thread "main" org.apache.hadoop.hbase.MasterNotRunningException at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:601) at org.apache.hadoop.hbase.client.HBaseAdmin.(HBaseAdmin.java:95) at org.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable(HBaseAdmin.java:1296) at Main.main(Main.java:57)
Configuration config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", "debianhdfs");
config.set("hbase.zookeeper.property.clientPort","2181");
HBaseAdmin.checkHBaseAvailable(config);