Hi, A few notes:
Remove the 127.0.1.1 lines, they usually mess things up. The hbase.master configuration has been removed from the HBase code more than 2 years ago, you can remove it too. Setting hbase.master.dns.interface alone without hbase.master.dns.nameserver doesn't do anything if I remember correctly, also I'm pretty sure you don't have an interface named "master", it's more likely "eth0" and whatnot. I don't know if this will fix your DNS resolution, but at least it will clean up a bit :) J-D 2011/12/15 exp <[email protected]>: > hi all, > > I am installing hbase on a small cluster of 3 machines. The RegionServer > unable connect to the master. This is the log: > > > 2011-12-15 13:46:43,415 INFO > org.apache.hadoop.hbase.regionserver.HRegionServer: Attempting connect to > Master server at localhost:60000 > 2011-12-15 13:47:43,473 WARN > org.apache.hadoop.hbase.regionserver.HRegionServer: Unable to connect to > master. Retrying. Error was: > java.net.ConnectException: Connection refused > at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) > at > sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567) > at > org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206) > ...... > > > > > The lod shows this RegionServer connect to the master at a wrong > address(localhost:60000). > > > as far as I know, the RegionServer use ZooKeeper to find out the master's > address. so I check the HMaster's log. > > > this is what i find out: > ... > 2011-12-15 13:44:34,946 INFO > org.apache.hadoop.hbase.master.metrics.MasterMetrics: Initialized > 2011-12-15 13:44:35,010 INFO > org.apache.hadoop.hbase.master.ActiveMasterManager: Master=localhost:60000 > 2011-12-15 13:44:37,476 INFO org.apache.zookeeper.ZooKeeper: Initiating > client connection, connectString=master:2181,slave2:2181,slave > 1:2181 sessionTimeout=180000 watcher=hconnection > ... > > > The HMaster starts at localhost:60000! I think the HMaster should start at > master:60000. "master" is the hosts where JobTracker runs. > > > I am using hbase 0.90.3 and zookeeper 3.3.4. This is the source code where > the HMaster get the address: > > > HServerAddress a = new HServerAddress(getMyAddress(this.conf)); > int numHandlers = conf.getInt("hbase.regionserver.handler.count", 10); > this.rpcServer = HBaseRPC.getServer(this, > new Class<?>[]{HMasterInterface.class, HMasterRegionInterface.class}, > a.getBindAddress(), a.getPort(), > numHandlers, > 0, // we dont use high priority handlers in master > false, conf, > 0); // this is a DNC w/o high priority handlers > this.address = new HServerAddress(rpcServer.getListenerAddress()); > > > private static String getMyAddress(final Configuration c) > throws UnknownHostException { > // Find out our address up in DNS. > String s = > DNS.getDefaultHost(c.get("hbase.master.dns.interface","default"), > c.get("hbase.master.dns.nameserver","default")); > s += ":" + c.get(HConstants.MASTER_PORT, > Integer.toString(HConstants.DEFAULT_MASTER_PORT)); > return s; > } > > > > > As you can see in the code, the HMaster find its address in DNS! I have no > idea how to setup the hbase to let the HMaster find the correct address. > > > this is my hbase-site.xml: > > > <configuration> > <property> > <name>hbase.rootdir</name> > <value>hdfs://master:9000/user/hadoop/hbase</value> > </property> > <property> > <name>hbase.cluster.distributed</name> > <value>true</value> > </property> > > > <property> > <name>hbase.master.dns.interface</name> > <value>master</value> > </property> > > > <property> > <name>zookeeper.znode.master</name> > <value>master</value> > </property> > > > <property> > <name>hbase.master</name> > <value>master:60000</value> > </property> > </configuration> > > > and all the three machines are virtual machine with Ubuntu 11.04 > > > this is the /etc/hosts : > master: > 127.0.0.1 localhost ubt > 127.0.0.1 ubt ubuntu > 10.66.201.243 master > 10.66.201.244 slave1 > 10.66.201.245 slave2 > > > slave1: > 127.0.0.1 localhost > 127.0.1.1 slave1 ubuntu > 10.66.201.243 master > 10.66.201.244 slave1 > 10.66.201.245 slave2 > > > slave2: > 127.0.0.1 localhost > 127.0.1.1 slave2 ubuntu > 10.66.201.243 master > 10.66.201.244 slave1 > 10.66.201.245 slave2 > > > any idea on this problems? > > > > > > > cheers > > > exception
