[ 
https://issues.apache.org/jira/browse/HBASE-12954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14391024#comment-14391024
 ] 

Esteban Gutierrez commented on HBASE-12954:
-------------------------------------------

[~tedyu], only few comments:

{code}
+  try {
+      TEST_UTIL.startMiniCluster(NUM_MASTERS, NUM_RS);
+    } catch (IOException ioe) {
+      Throwable t1 = ioe.getCause();
+      Throwable t2 = t1.getCause();
+      assertTrue(t2.getMessage().contains("Failed resolve of " + 
invalidHostname));
+      return;
+    } finally {
+      TEST_UTIL.shutdownMiniCluster();
+    }
{code}

Why not validate that the hostname is invalid before attempting to start the 
mini cluster? Also, is better to use a defined invalid TLD for this hostname 
(see [rfc2606|https://tools.ietf.org/html/rfc2606]) otherwise depending on the 
DNS of the host the test might not fail.

{code}
+ if (addr.isLoopbackAddress() || addr.isLinkLocalAddress() || 
addr.isMulticastAddress()
+            || !ni.getDisplayName().startsWith("e")) {
+          continue;
{code}
That  sound like you expect always an ethernet interfaces but is not always the 
case Ted. For instance IPoIB (Infiniband) uses interfaces names starting with 
{{ib}} also you can set up aliases and hostnames for testing on the loopback 
interface.


> Ability impaired using HBase on multihomed hosts
> ------------------------------------------------
>
>                 Key: HBASE-12954
>                 URL: https://issues.apache.org/jira/browse/HBASE-12954
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.98.4
>            Reporter: Clay B.
>            Assignee: Ted Yu
>            Priority: Minor
>             Fix For: 2.0.0, 1.1.0
>
>         Attachments: 12954-branch-1-v14.txt, 12954-v1.txt, 12954-v10.txt, 
> 12954-v11.txt, 12954-v12.txt, 12954-v12.txt, 12954-v12.txt, 12954-v13.txt, 
> 12954-v14.txt, 12954-v7.txt, 12954-v8.txt, Hadoop Three Interfaces.png
>
>
> For HBase clusters running on unusual networks (such as NAT'd cloud 
> environments or physical machines with multiple IP's per network interface) 
> it would be ideal to have a way to both specify:
> # which IP interface to which HBase master or region-server will bind
> # what hostname HBase will advertise in Zookeeper both for a master or 
> region-server process
> While efforts such as HBASE-8640 go a long way to normalize these two sources 
> of information, it is not possible in the current design of the properties 
> available to an administrator for these to be unambiguously specified.
> One has been able to request {{hbase.master.ipc.address}} or 
> {{hbase.regionserver.ipc.address}} but one can not specify the desired HBase 
> {{hbase.master.hostname}}. (It was removed in HBASE-1357, further I am 
> unaware of a region-server equivalent.)
> I use a configuration management system to generate all of my configuration 
> files on a per-machine basis. As such, an option to generate a file 
> specifying exactly which hostname to use would be helpful.
> Today, specifying the bind address for HBase works and one can use an 
> HBase-only DNS for faking what to put in Zookeeper but this is far from 
> ideal. Network interfaces have no intrinsic IP address, nor hostname. 
> Specifing a DNS server is awkward as the DNS server may differ from the 
> system's resolver and is a single IP address. Similarly, on hosts which use a 
> transient VIP (e.g. through keepalived) for other services, it means there's 
> a seemingly non-deterministic hostname choice made by HBase depending on the 
> state of the VIP at daemon start-up time.
> I will attach two networking examples I use which become very difficult to 
> manage under the current properties.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to