HADOOP-12936. modify hadoop-tools to take advantage of dynamic subcommands

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

Branch: refs/heads/HADOOP-12930
Commit: b67da297df9dcccc2422a14d53ab4fd8466b8609
Parents: 03699e0
Author: Allen Wittenauer <a...@apache.org>
Authored: Wed May 4 07:21:36 2016 -0700
Committer: Allen Wittenauer <a...@apache.org>
Committed: Wed May 4 20:43:21 2016 -0700

----------------------------------------------------------------------
 .../main/resources/assemblies/hadoop-tools.xml  | 32 ++++++++++++++
 .../hadoop-common/src/main/bin/hadoop           | 45 +++++++-------------
 hadoop-mapreduce-project/bin/mapred             | 21 ---------
 .../main/shellprofile.d/hadoop-archive-logs.sh  | 33 ++++++++++++++
 .../src/main/shellprofile.d/hadoop-archives.sh  | 41 ++++++++++++++++++
 .../src/main/shellprofile.d/hadoop-distcp.sh    | 43 +++++++++++++++++++
 .../src/main/shellprofile.d/hadoop-extras.sh    | 33 ++++++++++++++
 7 files changed, 197 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/b67da297/hadoop-assemblies/src/main/resources/assemblies/hadoop-tools.xml
----------------------------------------------------------------------
diff --git a/hadoop-assemblies/src/main/resources/assemblies/hadoop-tools.xml 
b/hadoop-assemblies/src/main/resources/assemblies/hadoop-tools.xml
index f8ba48e..c5ea6ad 100644
--- a/hadoop-assemblies/src/main/resources/assemblies/hadoop-tools.xml
+++ b/hadoop-assemblies/src/main/resources/assemblies/hadoop-tools.xml
@@ -24,6 +24,38 @@
   <includeBaseDirectory>false</includeBaseDirectory>
   <fileSets>
     <fileSet>
+      <directory>../hadoop-archive-logs/src/main/shellprofile.d</directory>
+      <includes>
+        <include>*</include>
+      </includes>
+      <outputDirectory>/libexec/shellprofile.d</outputDirectory>
+      <fileMode>0755</fileMode>
+    </fileSet>
+    <fileSet>
+      <directory>../hadoop-archives/src/main/shellprofile.d</directory>
+      <includes>
+        <include>*</include>
+      </includes>
+      <outputDirectory>/libexec/shellprofile.d</outputDirectory>
+      <fileMode>0755</fileMode>
+    </fileSet>
+    <fileSet>
+      <directory>../hadoop-distcp/src/main/shellprofile.d</directory>
+      <includes>
+        <include>*</include>
+      </includes>
+      <outputDirectory>/libexec/shellprofile.d</outputDirectory>
+      <fileMode>0755</fileMode>
+    </fileSet>
+    <fileSet>
+      <directory>../hadoop-extras/src/main/shellprofile.d</directory>
+      <includes>
+        <include>*</include>
+      </includes>
+      <outputDirectory>/libexec/shellprofile.d</outputDirectory>
+      <fileMode>0755</fileMode>
+    </fileSet>
+    <fileSet>
       <directory>../hadoop-pipes/src/main/native/pipes/api/hadoop</directory>
       <includes>
         <include>*.hh</include>

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b67da297/hadoop-common-project/hadoop-common/src/main/bin/hadoop
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/bin/hadoop 
b/hadoop-common-project/hadoop-common/src/main/bin/hadoop
index 81bff75..bb4b041 100755
--- a/hadoop-common-project/hadoop-common/src/main/bin/hadoop
+++ b/hadoop-common-project/hadoop-common/src/main/bin/hadoop
@@ -30,14 +30,11 @@ function hadoop_usage
   hadoop_add_option "hosts filename" "list of hosts to use in slave mode"
   hadoop_add_option "slaves" "turn on slave mode"
 
-  hadoop_add_subcommand "archive" "create a Hadoop archive"
   hadoop_add_subcommand "checknative" "check native Hadoop and compression 
libraries availability"
   hadoop_add_subcommand "classpath" "prints the class path needed to get the 
Hadoop jar and the required libraries"
   hadoop_add_subcommand "conftest" "validate configuration XML files"
   hadoop_add_subcommand "credential" "interact with credential providers"
   hadoop_add_subcommand "daemonlog" "get/set the log level for each daemon"
-  hadoop_add_subcommand "distch" "distributed metadata changer"
-  hadoop_add_subcommand "distcp" "copy file or directories recursively"
   hadoop_add_subcommand "dtutil" "operations related to delegation tokens"
   hadoop_add_subcommand "envvars" "display computed Hadoop environment 
variables"
   hadoop_add_subcommand "fs" "run a generic filesystem user client"
@@ -101,35 +98,23 @@ function hadoopcmd_case
         exit 1
       fi
     ;;
-    archive)
-      HADOOP_CLASS=org.apache.hadoop.tools.HadoopArchives
-      hadoop_add_to_classpath_tools hadoop-archives
-    ;;
     checknative)
-      HADOOP_CLASS=org.apache.hadoop.util.NativeLibraryChecker
+      HADOOP_CLASSNAME=org.apache.hadoop.util.NativeLibraryChecker
     ;;
     classpath)
-      hadoop_do_classpath_subcommand HADOOP_CLASS "$@"
+      hadoop_do_classpath_subcommand HADOOP_CLASSNAME "$@"
     ;;
     conftest)
-      HADOOP_CLASS=org.apache.hadoop.util.ConfTest
+      HADOOP_CLASSNAME=org.apache.hadoop.util.ConfTest
     ;;
     credential)
-      HADOOP_CLASS=org.apache.hadoop.security.alias.CredentialShell
+      HADOOP_CLASSNAME=org.apache.hadoop.security.alias.CredentialShell
     ;;
     daemonlog)
-      HADOOP_CLASS=org.apache.hadoop.log.LogLevel
-    ;;
-    distch)
-      HADOOP_CLASS=org.apache.hadoop.tools.DistCh
-      hadoop_add_to_classpath_tools hadoop-extras
-    ;;
-    distcp)
-      HADOOP_CLASS=org.apache.hadoop.tools.DistCp
-      hadoop_add_to_classpath_tools hadoop-distcp
+      HADOOP_CLASSNAME=org.apache.hadoop.log.LogLevel
     ;;
     dtutil)
-      HADOOP_CLASS=org.apache.hadoop.security.token.DtUtilShell
+      HADOOP_CLASSNAME=org.apache.hadoop.security.token.DtUtilShell
     ;;
     envvars)
       echo "JAVA_HOME='${JAVA_HOME}'"
@@ -144,13 +129,13 @@ function hadoopcmd_case
       exit 0
     ;;
     fs)
-      HADOOP_CLASS=org.apache.hadoop.fs.FsShell
+      HADOOP_CLASSNAME=org.apache.hadoop.fs.FsShell
     ;;
     jar)
       if [[ -n "${YARN_OPTS}" ]] || [[ -n "${YARN_CLIENT_OPTS}" ]]; then
         hadoop_error "WARNING: Use \"yarn jar\" to launch YARN applications."
       fi
-      HADOOP_CLASS=org.apache.hadoop.util.RunJar
+      HADOOP_CLASSNAME=org.apache.hadoop.util.RunJar
     ;;
     jnipath)
       hadoop_finalize
@@ -158,20 +143,20 @@ function hadoopcmd_case
       exit 0
     ;;
     kerbname)
-      HADOOP_CLASS=org.apache.hadoop.security.HadoopKerberosName
+      HADOOP_CLASSNAME=org.apache.hadoop.security.HadoopKerberosName
     ;;
     key)
-      HADOOP_CLASS=org.apache.hadoop.crypto.key.KeyShell
+      HADOOP_CLASSNAME=org.apache.hadoop.crypto.key.KeyShell
     ;;
     trace)
-      HADOOP_CLASS=org.apache.hadoop.tracing.TraceAdmin
+      HADOOP_CLASSNAME=org.apache.hadoop.tracing.TraceAdmin
     ;;
     version)
-      HADOOP_CLASS=org.apache.hadoop.util.VersionInfo
+      HADOOP_CLASSNAME=org.apache.hadoop.util.VersionInfo
     ;;
     *)
-      HADOOP_CLASS="${subcmd}"
-      if ! hadoop_validate_classname "${HADOOP_CLASS}"; then
+      HADOOP_CLASSNAME="${subcmd}"
+      if ! hadoop_validate_classname "${HADOOP_CLASSNAME}"; then
         hadoop_exit_with_usage 1
       fi
     ;;
@@ -223,5 +208,5 @@ hadoop_debug "Appending HADOOP_CLIENT_OPTS onto HADOOP_OPTS"
 HADOOP_OPTS="${HADOOP_OPTS} ${HADOOP_CLIENT_OPTS}"
 
 hadoop_finalize
-hadoop_java_exec "${HADOOP_SUBCMD}" "${HADOOP_CLASS}" "$@"
+hadoop_java_exec "${HADOOP_SUBCMD}" "${HADOOP_CLASSNAME}" "$@"
 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b67da297/hadoop-mapreduce-project/bin/mapred
----------------------------------------------------------------------
diff --git a/hadoop-mapreduce-project/bin/mapred 
b/hadoop-mapreduce-project/bin/mapred
index 69b00b3..84f03e4 100755
--- a/hadoop-mapreduce-project/bin/mapred
+++ b/hadoop-mapreduce-project/bin/mapred
@@ -24,10 +24,7 @@ HADOOP_SHELL_EXECNAME="${MYNAME##*/}"
 ## @replaceable  no
 function hadoop_usage
 {
-  hadoop_add_subcommand "archive" "create a hadoop archive"
-  hadoop_add_subcommand "archive-logs" "combine aggregated logs into hadoop 
archives"
   hadoop_add_subcommand "classpath" "prints the class path needed for running 
mapreduce subcommands"
-  hadoop_add_subcommand "distcp" "copy file or directories recursively"
   hadoop_add_subcommand "envvars" "display computed Hadoop environment 
variables"
   hadoop_add_subcommand "historyserver" "run job history servers as a 
standalone daemon"
   hadoop_add_subcommand "hsadmin" "job history server admin interface"
@@ -55,27 +52,9 @@ function mapredcmd_case
       hadoop_error "You may find similar functionality with the \"yarn\" shell 
command."
       hadoop_exit_with_usage 1
     ;;
-    archive)
-      HADOOP_CLASSNAME=org.apache.hadoop.tools.HadoopArchives
-      hadoop_add_to_classpath_tools hadoop-archives
-      hadoop_debug "Appending HADOOP_CLIENT_OPTS onto HADOOP_OPTS"
-      HADOOP_OPTS="${HADOOP_OPTS} ${HADOOP_CLIENT_OPTS}"
-    ;;
-    archive-logs)
-      HADOOP_CLASSNAME=org.apache.hadoop.tools.HadoopArchiveLogs
-      hadoop_add_to_classpath_tools hadoop-archive-logs
-      hadoop_debug "Appending HADOOP_CLIENT_OPTS onto HADOOP_OPTS"
-      HADOOP_OPTS="${HADOOP_OPTS} ${HADOOP_CLIENT_OPTS}"
-    ;;
     classpath)
       hadoop_do_classpath_subcommand HADOOP_CLASSNAME "$@"
     ;;
-    distcp)
-      HADOOP_CLASSNAME=org.apache.hadoop.tools.DistCp
-      hadoop_add_to_classpath_tools hadoop-distcp
-      hadoop_debug "Appending HADOOP_CLIENT_OPTS onto HADOOP_OPTS"
-      HADOOP_OPTS="${HADOOP_OPTS} ${HADOOP_CLIENT_OPTS}"
-    ;;
     envvars)
       echo "JAVA_HOME='${JAVA_HOME}'"
       echo "HADOOP_MAPRED_HOME='${HADOOP_MAPRED_HOME}'"

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b67da297/hadoop-tools/hadoop-archive-logs/src/main/shellprofile.d/hadoop-archive-logs.sh
----------------------------------------------------------------------
diff --git 
a/hadoop-tools/hadoop-archive-logs/src/main/shellprofile.d/hadoop-archive-logs.sh
 
b/hadoop-tools/hadoop-archive-logs/src/main/shellprofile.d/hadoop-archive-logs.sh
new file mode 100755
index 0000000..d37411e
--- /dev/null
+++ 
b/hadoop-tools/hadoop-archive-logs/src/main/shellprofile.d/hadoop-archive-logs.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+if [[ "${HADOOP_SHELL_EXECNAME}" = mapred ]]; then
+  hadoop_add_subcommand "archive-logs" "combine aggregated logs into hadoop 
archives"
+fi
+
+## @description  archive-logs command for mapred
+## @audience     public
+## @stability    stable
+## @replaceable  no
+function mapred_subcommand_archive-logs
+{
+  # shellcheck disable=SC2034
+  HADOOP_CLASSNAME=org.apache.hadoop.tools.HadoopArchiveLogs
+  hadoop_add_to_classpath_tools hadoop-archive-logs
+  hadoop_debug "Appending HADOOP_CLIENT_OPTS onto HADOOP_OPTS"
+  HADOOP_OPTS="${HADOOP_OPTS} ${HADOOP_CLIENT_OPTS}"
+}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b67da297/hadoop-tools/hadoop-archives/src/main/shellprofile.d/hadoop-archives.sh
----------------------------------------------------------------------
diff --git 
a/hadoop-tools/hadoop-archives/src/main/shellprofile.d/hadoop-archives.sh 
b/hadoop-tools/hadoop-archives/src/main/shellprofile.d/hadoop-archives.sh
new file mode 100755
index 0000000..b85ff25
--- /dev/null
+++ b/hadoop-tools/hadoop-archives/src/main/shellprofile.d/hadoop-archives.sh
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+if [[ "${HADOOP_SHELL_EXECNAME}" = hadoop
+   || "${HADOOP_SHELL_EXECNAME}" = mapred ]]; then
+  hadoop_add_subcommand "archive" "create a Hadoop archive"
+fi
+
+## @description  archive command for hadoop (and mapred)
+## @audience     public
+## @stability    stable
+## @replaceable  no
+function hadoop_subcommand_archive
+{
+  # shellcheck disable=SC2034
+  HADOOP_CLASSNAME=org.apache.hadoop.tools.HadoopArchives
+  hadoop_add_to_classpath_tools hadoop-archives
+}
+
+## @description  archive-logs command for mapred (calls hadoop version)
+## @audience     public
+## @stability    stable
+## @replaceable  no
+function mapred_subcommand_archive
+{
+  hadoop_subcommand_archive
+}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b67da297/hadoop-tools/hadoop-distcp/src/main/shellprofile.d/hadoop-distcp.sh
----------------------------------------------------------------------
diff --git 
a/hadoop-tools/hadoop-distcp/src/main/shellprofile.d/hadoop-distcp.sh 
b/hadoop-tools/hadoop-distcp/src/main/shellprofile.d/hadoop-distcp.sh
new file mode 100755
index 0000000..6cb13fc
--- /dev/null
+++ b/hadoop-tools/hadoop-distcp/src/main/shellprofile.d/hadoop-distcp.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+if [[ "${HADOOP_SHELL_EXECNAME}" = hadoop
+   || "${HADOOP_SHELL_EXECNAME}" = mapred ]]; then
+  hadoop_add_subcommand "distcp" "copy file or directories recursively"
+fi
+
+## @description  distcp command for hadoop
+## @audience     public
+## @stability    stable
+## @replaceable  no
+function hadoop_subcommand_distcp
+{
+  # shellcheck disable=SC2034
+  HADOOP_CLASSNAME=org.apache.hadoop.tools.DistCp
+  hadoop_add_to_classpath_tools hadoop-distcp
+  hadoop_debug "Appending HADOOP_CLIENT_OPTS onto HADOOP_OPTS"
+  HADOOP_OPTS="${HADOOP_OPTS} ${HADOOP_CLIENT_OPTS}"
+}
+
+## @description  distcp command for mapred (calls hadoop)
+## @audience     public
+## @stability    stable
+## @replaceable  no
+function mapred_subcommand_distcp
+{
+  hadoop_subcommand_distcp
+}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b67da297/hadoop-tools/hadoop-extras/src/main/shellprofile.d/hadoop-extras.sh
----------------------------------------------------------------------
diff --git 
a/hadoop-tools/hadoop-extras/src/main/shellprofile.d/hadoop-extras.sh 
b/hadoop-tools/hadoop-extras/src/main/shellprofile.d/hadoop-extras.sh
new file mode 100755
index 0000000..e599334
--- /dev/null
+++ b/hadoop-tools/hadoop-extras/src/main/shellprofile.d/hadoop-extras.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+if [[ "${HADOOP_SHELL_EXECNAME}" = hadoop ]]; then
+  hadoop_add_subcommand "distch" "distributed metadata changer"
+fi
+
+## @description  distch command for hadoop
+## @audience     public
+## @stability    stable
+## @replaceable  no
+function hadoop_subcommand_distch
+{
+  # shellcheck disable=SC2034
+  HADOOP_CLASSNAME=org.apache.hadoop.tools.DistCh
+  hadoop_add_to_classpath_tools hadoop-extras
+  hadoop_debug "Appending HADOOP_CLIENT_OPTS onto HADOOP_OPTS"
+  HADOOP_OPTS="${HADOOP_OPTS} ${HADOOP_CLIENT_OPTS}"
+}


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

Reply via email to