You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ae...@apache.org on 2017/12/01 20:21:27 UTC

hadoop git commit: HDFS-12588. Use GenericOptionsParser for scm and ksm daemon. Contributed by Elek, Marton.

Repository: hadoop
Updated Branches:
  refs/heads/HDFS-7240 8f7f4aa80 -> 677673f0d


HDFS-12588. Use GenericOptionsParser for scm and ksm daemon. Contributed by Elek, Marton.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/677673f0
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/677673f0
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/677673f0

Branch: refs/heads/HDFS-7240
Commit: 677673f0df6637616a65bfcbba38278967c6d19e
Parents: 8f7f4aa
Author: Anu Engineer <ae...@apache.org>
Authored: Fri Dec 1 12:14:08 2017 -0800
Committer: Anu Engineer <ae...@apache.org>
Committed: Fri Dec 1 12:14:08 2017 -0800

----------------------------------------------------------------------
 .../hadoop-hdfs/src/main/bin/hdfs               |  6 +++++
 .../hadoop/ozone/ksm/KeySpaceManager.java       | 15 ++++++++++-
 .../ozone/scm/StorageContainerManager.java      | 28 +++++++++++++++-----
 .../org/apache/hadoop/ozone/scm/cli/SCMCLI.java |  2 +-
 4 files changed, 42 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/677673f0/hadoop-hdfs-project/hadoop-hdfs/src/main/bin/hdfs
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/bin/hdfs b/hadoop-hdfs-project/hadoop-hdfs/src/main/bin/hdfs
index ffe059b..2dc0713 100755
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/bin/hdfs
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/bin/hdfs
@@ -68,6 +68,7 @@ function hadoop_usage
   hadoop_add_subcommand "oz_debug" client "ozone debug tool, convert ozone metadata into relational data"
   hadoop_add_subcommand "portmap" daemon "run a portmap service"
   hadoop_add_subcommand "scm" daemon "run the Storage Container Manager service"
+  hadoop_add_subcommand "scmcli" client "run the CLI of the Storage Container Manager "
   hadoop_add_subcommand "secondarynamenode" daemon "run the DFS secondary namenode"
   hadoop_add_subcommand "snapshotDiff" client "diff two snapshots of a directory or diff the current directory contents with a snapshot"
   hadoop_add_subcommand "storagepolicies" admin "list/get/set block storage policies"
@@ -219,9 +220,14 @@ function hdfscmd_case
       HADOOP_SUBCMD_SUPPORTDAEMONIZATION="true"
       HADOOP_CLASSNAME=org.apache.hadoop.portmap.Portmap
     ;;
+    scmcli)
+       HADOOP_CLASSNAME=org.apache.hadoop.ozone.scm.cli.SCMCLI
+    ;;
     scm)
       HADOOP_SUBCMD_SUPPORTDAEMONIZATION="true"
       HADOOP_CLASSNAME='org.apache.hadoop.ozone.scm.StorageContainerManager'
+      hadoop_debug "Appending HDFS_STORAGECONTAINERMANAGER_OPTS onto HADOOP_OPTS"
+      HADOOP_OPTS="${HADOOP_OPTS} ${HDFS_STORAGECONTAINERMANAGER_OPTS}"
     ;;
     scmcli)
       HADOOP_CLASSNAME=org.apache.hadoop.ozone.scm.cli.SCMCLI

http://git-wip-us.apache.org/repos/asf/hadoop/blob/677673f0/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeySpaceManager.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeySpaceManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeySpaceManager.java
index dd142f7..385d5f6 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeySpaceManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeySpaceManager.java
@@ -48,6 +48,7 @@ import org.apache.hadoop.scm.protocol.ScmBlockLocationProtocol;
 import org.apache.hadoop.scm.protocolPB.ScmBlockLocationProtocolClientSideTranslatorPB;
 import org.apache.hadoop.scm.protocolPB.ScmBlockLocationProtocolPB;
 import org.apache.hadoop.security.UserGroupInformation;
+import org.apache.hadoop.util.GenericOptionsParser;
 import org.apache.hadoop.util.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -89,6 +90,7 @@ public class KeySpaceManager extends ServiceRuntimeInfoImpl
   private final KSMMetrics metrics;
   private final KeySpaceManagerHttpServer httpServer;
   private ObjectName ksmInfoBeanName;
+  private static final String USAGE = "hdfs ksm [genericOptions]";
 
   public KeySpaceManager(OzoneConfiguration conf) throws IOException {
     final int handlerCount = conf.getInt(OZONE_KSM_HANDLER_COUNT_KEY,
@@ -191,14 +193,25 @@ public class KeySpaceManager extends ServiceRuntimeInfoImpl
    * @throws IOException if startup fails due to I/O error
    */
   public static void main(String[] argv) throws IOException {
-    StringUtils.startupShutdownMessage(KeySpaceManager.class, argv, LOG);
+    if (DFSUtil.parseHelpArgument(argv, USAGE,
+        System.out, true)) {
+      System.exit(0);
+    }
     try {
       OzoneConfiguration conf = new OzoneConfiguration();
+      GenericOptionsParser hParser = new GenericOptionsParser(conf, argv);
+      if (!hParser.isParseSuccessful()
+          || hParser.getRemainingArgs().length > 0) {
+        System.err.println("USAGE: " + USAGE + " \n");
+        hParser.printGenericCommandUsage(System.err);
+        System.exit(1);
+      }
       if (!DFSUtil.isOzoneEnabled(conf)) {
         System.out.println("KSM cannot be started in secure mode or when " +
             OZONE_ENABLED + " is set to false");
         System.exit(1);
       }
+      StringUtils.startupShutdownMessage(KeySpaceManager.class, argv, LOG);
       KeySpaceManager ksm = new KeySpaceManager(conf);
       ksm.start();
       ksm.join();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/677673f0/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/StorageContainerManager.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/StorageContainerManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/StorageContainerManager.java
index b351c84..bae4cff 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/StorageContainerManager.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/StorageContainerManager.java
@@ -91,6 +91,7 @@ import org.apache.hadoop.scm.protocolPB.StorageContainerLocationProtocolPB;
 import org.apache.hadoop.ozone.common.Storage.StorageState;
 import org.apache.hadoop.ozone.scm.exceptions.SCMException.ResultCodes;
 import org.apache.hadoop.security.UserGroupInformation;
+import org.apache.hadoop.util.GenericOptionsParser;
 import org.apache.hadoop.util.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -216,9 +217,12 @@ public class StorageContainerManager extends ServiceRuntimeInfoImpl
 
 
   private static final String USAGE =
-      "Usage: \n hdfs scm [ " + StartupOption.INIT.getName() + " [ "
-          + StartupOption.CLUSTERID.getName() + " <cid> ] ]\n " + "hdfs scm [ "
-          + StartupOption.GENCLUSTERID.getName() + " ]\n " + "hdfs scm [ "
+      "Usage: \n hdfs scm [genericOptions] "
+          + "[ " + StartupOption.INIT.getName() + " [ "
+          + StartupOption.CLUSTERID.getName() + " <cid> ] ]\n "
+          + "hdfs scm [genericOptions] [ "
+          + StartupOption.GENCLUSTERID.getName() + " ]\n " +
+          "hdfs scm [ "
           + StartupOption.HELP.getName() + " ]\n";
   /**
    * Creates a new StorageContainerManager.  Configuration will be updated with
@@ -401,11 +405,21 @@ public class StorageContainerManager extends ServiceRuntimeInfoImpl
    * @throws IOException if startup fails due to I/O error
    */
   public static void main(String[] argv) throws IOException {
-    StringUtils.startupShutdownMessage(StorageContainerManager.class,
-        argv, LOG);
-    OzoneConfiguration conf = new OzoneConfiguration();
+    if (DFSUtil.parseHelpArgument(argv, USAGE,
+        System.out, true)) {
+      System.exit(0);
+    }
     try {
-      StorageContainerManager scm = createSCM(argv, conf);
+      OzoneConfiguration conf = new OzoneConfiguration();
+      GenericOptionsParser hParser = new GenericOptionsParser(conf, argv);
+      if (!hParser.isParseSuccessful()) {
+        System.err.println("USAGE: " + USAGE + "\n");
+        hParser.printGenericCommandUsage(System.err);
+        System.exit(1);
+      }
+      StringUtils.startupShutdownMessage(StorageContainerManager.class,
+          argv, LOG);
+      StorageContainerManager scm = createSCM(hParser.getRemainingArgs(), conf);
       if (scm != null) {
         scm.start();
         scm.join();

http://git-wip-us.apache.org/repos/asf/hadoop/blob/677673f0/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/SCMCLI.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/SCMCLI.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/SCMCLI.java
index b9bd89f..fb22d05 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/SCMCLI.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/cli/SCMCLI.java
@@ -162,7 +162,7 @@ public class SCMCLI extends OzoneBaseCLI {
     HelpFormatter helpFormatter = new HelpFormatter();
     Options topLevelOptions = new Options();
     addTopLevelOptions(topLevelOptions);
-    helpFormatter.printHelp(CMD_WIDTH, "hdfs scm <commands> [<options>]",
+    helpFormatter.printHelp(CMD_WIDTH, "hdfs scmcli <commands> [<options>]",
         "where <commands> can be one of the following",
         topLevelOptions, "");
   }


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org