You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ni...@apache.org on 2009/07/10 23:44:43 UTC

svn commit: r793123 - in /hadoop/hbase/trunk: CHANGES.txt src/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java

Author: nitay
Date: Fri Jul 10 21:44:43 2009
New Revision: 793123

URL: http://svn.apache.org/viewvc?rev=793123&view=rev
Log:
HBASE-1639 clean checkout with empty hbase-site.xml, zk won't start

Modified:
    hadoop/hbase/trunk/CHANGES.txt
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java

Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=793123&r1=793122&r2=793123&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Fri Jul 10 21:44:43 2009
@@ -256,6 +256,7 @@
                (Doğacan Güney via Stack)
    HBASE-1644  Result.row is cached in getRow; this breaks MapReduce
                (Doğacan Güney via Stack)
+   HBASE-1639  clean checkout with empty hbase-site.xml, zk won't start
 
   IMPROVEMENTS
    HBASE-1089  Add count of regions on filesystem to master UI; add percentage

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java?rev=793123&r1=793122&r2=793123&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/zookeeper/HQuorumPeer.java Fri Jul 10 21:44:43 2009
@@ -32,6 +32,7 @@
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.net.DNS;
+import org.apache.hadoop.util.StringUtils;
 import org.apache.zookeeper.server.ServerConfig;
 import org.apache.zookeeper.server.ZooKeeperServerMain;
 import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
@@ -85,6 +86,19 @@
     }
   }
 
+  private static boolean addressIsLocalHost(String address) {
+    return address.equals("localhost") || address.equals("127.0.0.1");
+  }
+
+  private static boolean hostEquals(String addrA, String addrB) {
+    if (addrA.contains(".") && addrB.contains(".")) {
+      return addrA.equals(addrB);
+    }
+    String hostA = StringUtils.simpleHostname(addrA);
+    String hostB = StringUtils.simpleHostname(addrB);
+    return hostA.equals(hostB);
+  }
+
   private static void writeMyID(Properties properties) throws UnknownHostException, IOException {
     HBaseConfiguration conf = new HBaseConfiguration();
     String myAddress = DNS.getDefaultHost(
@@ -101,7 +115,9 @@
         long id = Long.parseLong(key.substring(dot + 1));
         String[] parts = value.split(":");
         String address = parts[0];
-        if (myAddress.equals(address)) {
+        if (addressIsLocalHost(address) || hostEquals(myAddress, address)) {
+          LOG.debug("found my address: " + myAddress + ", in list: " + address +
+                    ", setting myId to " + id);
           myId = id;
           break;
         }