How are the internal IP addresses set up?  If all three nodes have their
internal IP addresses in the same subnet then you can set a route on the two
private-only nodes.

So for instance:

Node 1 eth0: 192.168.0.1/24
Node 1 eth1: 128.220.233.214/24

Node 2 eth0: 192.168.0.2/24

Node 3 eth0: 192.168.0.3/24

If you have an IP setup like that then you can run on node 2 and node 3:
route add -host 128.220.233.214 gw 192.168.0.1

On Thu, Nov 11, 2010 at 8:19 AM, Buttler, David <buttl...@llnl.gov> wrote:

> Instead of specifying an ip address can you specify an internal dns name
> and only map that name to the internal ip?
> Dave
>
> -----Original Message-----
> From: Da Zheng [mailto:zhengda1...@gmail.com]
> Sent: Wednesday, November 10, 2010 10:24 PM
> To: user@hbase.apache.org
> Subject: specify the IP address of the master node
>
> Hello,
>
> I tried to setup HBase on 3 nodes. One of them has two network interface,
> one
> has public IP address and the other has private address. The other two
> nodes are
> inside a private network, so they cannot connect to the public address of
> the
> first node. I set the first node (with two interfaces) as the master
> server, the
> other two as region servers. The problem now is that the zookeeper keeps
> giving
> the public IP address of the master node to the two other nodes and thus
> HBase
> fails to run. The error is shown below. Is there any way I can specify the
> IP
> address of the master node myself? I tried hbase.master.info.bindAddress
> but it
> doesn't work. I searched hbase-default.xml, but cannot find anything close.
>
> 2010-11-11 00:10:17,339 DEBUG
> org.apache.hadoop.hbase.zookeeper.ZooKeeperWrapper: Set watcher on master
> address ZNode /hbase/master
> 2010-11-11 00:10:17,489 DEBUG
> org.apache.hadoop.hbase.zookeeper.ZooKeeperWrapper: Read ZNode
> /hbase/master got
> 128.220.233.214:60000
> 2010-11-11 00:10:17,489 INFO
> org.apache.hadoop.hbase.regionserver.HRegionServer:
> Telling master at 128.220.233.214:60000 that we are up
> 2010-11-11 00:10:17,734 WARN
> org.apache.hadoop.hbase.regionserver.HRegionServer:
> Unable to connect to master. Retrying. Error was:
> java.net.SocketException: Network is unreachable
>        at sun.nio.ch.Net.connect(Native Method)
>        at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:507)
>        at
>
> org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:192)
>        at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:404)
>        at
>
> org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:308)
>        at
> org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:844)
>        at
> org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:716)
>        at
> org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:333)
>        at $Proxy0.getProtocolVersion(Unknown Source)
>        at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:489)
>        at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:465)
>        at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:512)
>        at
> org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:423)
>        at
>
> org.apache.hadoop.hbase.regionserver.HRegionServer.getMaster(HRegionServer.java:1299)
>        at
>
> org.apache.hadoop.hbase.regionserver.HRegionServer.reportForDuty(HRegionServer.java:1317)
>        at
>
> org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:434)
>        at java.lang.Thread.run(Thread.java:662)
>
>
> Best,
> Da
>

Reply via email to