Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

Switch to Plain View
HBase >> mail # user >> HBase with multiple interfaces


+
Sudarshan Kadambi 2013-11-13, 18:02
+
Jean-Marc Spaggiari 2013-11-14, 19:45
+
Asaf Mesika 2013-11-15, 05:07
+
Jean-Marc Spaggiari 2013-11-15, 13:52
+
Sudarshan Kadambi 2013-11-15, 16:18
Copy link to this message
-
Re: HBase with multiple interfaces
Asaf:

What doesn't work is that the RegionServers bind to the IP that the hostname maps to in /etc/hosts and not to the specified interface.

I've this in hbase-site.xml:
  </property>
    <property>
    <name>hbase.master.dns.interface</name>
    <value>eth0</value>
  </property>
 </property>
    <property>
    <name>hbase.regionserver.dns.interface</name>
    <value>eth0</value>
  </property>

This however has no effect. I'm on HBase 0.94.6.

I see:
  // Server to handle client requests.
    String hostname = conf.get("hbase.regionserver.ipc.address",
      Strings.domainNamePointerToHostName(DNS.getDefaultHost(
        conf.get("hbase.regionserver.dns.interface", "default"),
        conf.get("hbase.regionserver.dns.nameserver", "default"))));
    int port = conf.getInt(HConstants.REGIONSERVER_PORT,
      HConstants.DEFAULT_REGIONSERVER_PORT);
    // Creation of a HSA will force a resolve.
    InetSocketAddress initialIsa = new InetSocketAddress(hostname, port);
    if (initialIsa.getAddress() == null) {
      throw new IllegalArgumentException("Failed resolve of " + initialIsa);
    }

So this setting is in the code (that JIRA should be resolved; it's confusing). Reverse DNS lookups don't work yet on my cluster. Could this be the reason? I traced this down to a call to getHosts() which does a reverseDns lookup. And since that doesn't work it falls back to the default?

----- Original Message -----
From: [EMAIL PROTECTED]
To: Sudarshan Kadambi (BLOOMBERG/ 731 LEXIN), [EMAIL PROTECTED]
At: Nov 15 2013 00:07:50

We are using both of the following properties: hbase.regionserver.dns.interface, base.master.dns.interface. Both set to the interface name we want. We have two interfaces as you described - one for inner communication and one for external.

What exactly is not working for you?
On Wed, Nov 13, 2013 at 8:02 PM, Sudarshan Kadambi (BLOOMBERG/ 731 LEXIN) <[EMAIL PROTECTED]> wrote:

Hi Guys:

I've HBase running on a machine with multiple interfaces (for in-bound and inter-cluster traffic). I can't get HBase to listen on the interface I want it to by setting hbase.regionserver.dns.interface. Does this setting work? What is its purpose?
 
After reading an old thread on the user list, I wasn't sure:
http://comments.gmane.org/gmane.comp.java.hadoop.hbase.user/10150

That thread led me to this unresolved JIRA: https://issues.apache.org/jira/browse/HBASE-2502

-sudarshan
+
Jean-Marc Spaggiari 2013-11-15, 16:06
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB