You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jd...@apache.org on 2009/05/04 20:05:15 UTC

svn commit: r771381 - in /hadoop/hbase/branches/0.19: ./ conf/ src/java/org/apache/hadoop/hbase/ src/java/org/apache/hadoop/hbase/master/ src/java/org/apache/hadoop/hbase/regionserver/ src/webapps/master/

Author: jdcryans
Date: Mon May  4 18:05:15 2009
New Revision: 771381

URL: http://svn.apache.org/viewvc?rev=771381&view=rev
Log:
HBASE-1279  Fix the way hostnames and IPs are handled

Modified:
    hadoop/hbase/branches/0.19/CHANGES.txt
    hadoop/hbase/branches/0.19/conf/hbase-default.xml
    hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/HServerInfo.java
    hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/HMaster.java
    hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
    hadoop/hbase/branches/0.19/src/webapps/master/master.jsp

Modified: hadoop/hbase/branches/0.19/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/CHANGES.txt?rev=771381&r1=771380&r2=771381&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19/CHANGES.txt (original)
+++ hadoop/hbase/branches/0.19/CHANGES.txt Mon May  4 18:05:15 2009
@@ -21,6 +21,7 @@
    HBASE-1318  Thrift server doesnt know about atomicIncrement
                (Ryan Rawson via Stack)
    HBASE-1352  incrementColumnValue/Memcache bug
+   HBASE-1279  Fix the way hostnames and IPs are handled
 
 
 Release 0.19.1 - 03/19/2009

Modified: hadoop/hbase/branches/0.19/conf/hbase-default.xml
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/conf/hbase-default.xml?rev=771381&r1=771380&r2=771381&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19/conf/hbase-default.xml (original)
+++ hadoop/hbase/branches/0.19/conf/hbase-default.xml Mon May  4 18:05:15 2009
@@ -202,6 +202,21 @@
     </description>
   </property>
   <property>
+    <name>hbase.regionserver.dns.interface</name>
+    <value>default</value>
+    <description>The name of the Network Interface from which a region server 
+      should report its IP address.
+    </description>
+  </property>
+  <property>
+    <name>hbase.regionserver.dns.nameserver</name>
+    <value>default</value>
+    <description>The host name or IP address of the name server (DNS)
+      which a region server should use to determine the host name used by the
+      master for communication and display purposes.
+    </description>
+  </property>
+  <property>
     <name>hbase.regionserver.globalMemcache.upperLimit</name>
     <value>0.4</value>
     <description>Maximum size of all memcaches in a region server before new 

Modified: hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/HServerInfo.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/HServerInfo.java?rev=771381&r1=771380&r2=771381&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/HServerInfo.java (original)
+++ hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/HServerInfo.java Mon May  4 18:05:15 2009
@@ -38,6 +38,7 @@
   private long startCode;
   private HServerLoad load;
   private int infoPort;
+  private String name;
 
   /** default constructor - used by Writable */
   public HServerInfo() {
@@ -114,6 +115,14 @@
   public void setStartCode(long startCode) {
     this.startCode = startCode;
   }
+  
+  public String getName() {
+    return name;
+  }
+  
+  public void setName(String name) {
+    this.name = name;
+  }
 
   @Override
   public String toString() {
@@ -131,6 +140,7 @@
     int result = this.serverAddress.hashCode();
     result ^= this.infoPort;
     result ^= this.startCode;
+    result ^= this.name.hashCode();
     return result;
   }
 
@@ -142,6 +152,7 @@
     this.startCode = in.readLong();
     this.load.readFields(in);
     this.infoPort = in.readInt();
+    this.name = in.readUTF();
   }
 
   public void write(DataOutput out) throws IOException {
@@ -149,6 +160,7 @@
     out.writeLong(this.startCode);
     this.load.write(out);
     out.writeInt(this.infoPort);
+    out.writeUTF(name);
   }
 
   public int compareTo(HServerInfo o) {

Modified: hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/HMaster.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/HMaster.java?rev=771381&r1=771380&r2=771381&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/HMaster.java (original)
+++ hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/master/HMaster.java Mon May  4 18:05:15 2009
@@ -547,10 +547,15 @@
    * HMasterRegionInterface
    */
   public MapWritable regionServerStartup(final HServerInfo serverInfo) {
-    // Set the address for now even tho it will not be persisted on HRS side.
-    String rsAddress = HBaseServer.getRemoteAddress();
-    serverInfo.setServerAddress(new HServerAddress(rsAddress,
-      serverInfo.getServerAddress().getPort()));
+    // Set the address for now even tho it will not be persisted on HRS side
+    // If the address given is not the default one,
+    // use the IP given by the user.
+    if (serverInfo.getServerAddress().getBindAddress().equals(
+        DEFAULT_HOST)) {
+      String rsAddress = HBaseServer.getRemoteAddress();
+      serverInfo.setServerAddress(new HServerAddress(rsAddress,
+        serverInfo.getServerAddress().getPort()));
+    }
     // Register with server manager
     this.serverManager.regionServerStartup(serverInfo);
     // Send back some config info

Modified: hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=771381&r1=771380&r2=771381&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (original)
+++ hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java Mon May  4 18:05:15 2009
@@ -101,6 +101,7 @@
 import org.apache.hadoop.hbase.util.Threads;
 import org.apache.hadoop.io.MapWritable;
 import org.apache.hadoop.io.Writable;
+import org.apache.hadoop.net.DNS;
 import org.apache.hadoop.util.Progressable;
 import org.apache.hadoop.util.StringUtils;
 
@@ -276,9 +277,13 @@
     // Address is givin a default IP for the moment. Will be changed after
     // calling the master.
     this.serverInfo = new HServerInfo(new HServerAddress(
-      new InetSocketAddress(DEFAULT_HOST,
+      new InetSocketAddress(address.getBindAddress(),
       this.server.getListenerAddress().getPort())), System.currentTimeMillis(),
       this.conf.getInt("hbase.regionserver.info.port", 60030));
+    String machineName = DNS.getDefaultHost(
+      conf.get("hbase.regionserver.dns.interface","default"),
+      conf.get("hbase.regionserver.dns.nameserver","default"));
+    this.serverInfo.setName(machineName);
     if (this.serverInfo.getServerAddress() == null) {
       throw new NullPointerException("Server address cannot be null; " +
         "hbase-958 debugging");

Modified: hadoop/hbase/branches/0.19/src/webapps/master/master.jsp
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/src/webapps/master/master.jsp?rev=771381&r1=771380&r2=771381&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19/src/webapps/master/master.jsp (original)
+++ hadoop/hbase/branches/0.19/src/webapps/master/master.jsp Mon May  4 18:05:15 2009
@@ -88,9 +88,9 @@
      for (String serverName: serverNames) {
        HServerInfo hsi = serverToServerInfos.get(serverName);
        String url = "http://" +
-         hsi.getServerAddress().getHostname().toString() + ":" +
+         hsi.getName() + ":" +
          hsi.getInfoPort() + "/";
-       String hostname = hsi.getServerAddress().getHostname() + ":" + hsi.getServerAddress().getPort();
+       String hostname = hsi.getName() + ":" + hsi.getServerAddress().getPort();
        totalRegions += hsi.getLoad().getNumberOfRegions();
        totalRequests += hsi.getLoad().getNumberOfRequests() / interval;
        long startCode = hsi.getStartCode();