Forráskód Böngészése

HADOOP-282. Fix datanode to retry registration, rather than permanently fail if the namenode is down when it starts. Contributed by Owen.

git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk@412545 13f79535-47bb-0310-9956-ffa450edef68
Doug Cutting 19 éve
szülő
commit
4e40638f53
1 módosított fájl, 11 hozzáadás és 2 törlés
  1. 11 2
      src/java/org/apache/hadoop/dfs/DataNode.java

+ 11 - 2
src/java/org/apache/hadoop/dfs/DataNode.java

@@ -24,7 +24,6 @@ import org.apache.hadoop.util.DiskChecker.DiskErrorException;
 
 import java.io.*;
 import java.net.*;
-import java.nio.channels.FileLock;
 import java.util.*;
 
 /**********************************************************
@@ -106,7 +105,17 @@ public class DataNode implements FSConstants, Runnable {
              new File(datadir),
              createSocketAddr(conf.get("fs.default.name", "local")), conf);
         // register datanode
-        register();
+        while (shouldRun) {
+          try {
+            register();
+            break;
+          } catch (ConnectException ce) {
+            LOG.info("Namenode not available yet, Zzzzz...");
+            try {
+              Thread.sleep(10 * 1000);
+            } catch (InterruptedException ie) {}
+          }
+        }
     }
 
     /**