Browse Source

HDFS-9519. Some coding improvement in SecondaryNameNode#main. (Xiao Chen via Yongjun Zhang)

Yongjun Zhang 9 years ago
parent
commit
2a4c7d4fac

+ 3 - 0
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt

@@ -1742,6 +1742,9 @@ Release 2.8.0 - UNRELEASED
     HDFS-9532. Detailed exception info is lost in reportTo methods of
     ErrorReportAction and ReportBadBlockAction. (Yongjun Zhang)
 
+    HDFS-9519. Some coding improvement in SecondaryNameNode#main.
+    (Xiao Chen via Yongjun Zhang)
+
   OPTIMIZATIONS
 
     HDFS-8026. Trace FSOutputSummer#writeChecksumChunks rather than

+ 6 - 8
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/SecondaryNameNode.java

@@ -679,18 +679,16 @@ public class SecondaryNameNode implements Runnable,
       SecondaryNameNode secondary = null;
       secondary = new SecondaryNameNode(tconf, opts);
 
+      // SecondaryNameNode can be started in 2 modes:
+      // 1. run a command (i.e. checkpoint or geteditsize) then terminate
+      // 2. run as a daemon when {@link #parseArgs} yields no commands
       if (opts != null && opts.getCommand() != null) {
+        // mode 1
         int ret = secondary.processStartupCommand(opts);
         terminate(ret);
-      }
-
-      if (secondary != null) {
-        // The web server is only needed when starting SNN as a daemon,
-        // and not needed if called from shell command. Starting the web server
-        // from shell may fail when getting credentials, if the environment
-        // is not set up for it, which is most of the case.
+      } else {
+        // mode 2
         secondary.startInfoServer();
-
         secondary.startCheckpointThread();
         secondary.join();
       }