hadoop 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. #!/usr/bin/env bash
  2. # Licensed to the Apache Software Foundation (ASF) under one or more
  3. # contributor license agreements. See the NOTICE file distributed with
  4. # this work for additional information regarding copyright ownership.
  5. # The ASF licenses this file to You under the Apache License, Version 2.0
  6. # (the "License"); you may not use this file except in compliance with
  7. # the License. You may obtain a copy of the License at
  8. #
  9. # http://www.apache.org/licenses/LICENSE-2.0
  10. #
  11. # Unless required by applicable law or agreed to in writing, software
  12. # distributed under the License is distributed on an "AS IS" BASIS,
  13. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. # See the License for the specific language governing permissions and
  15. # limitations under the License.
  16. # The Hadoop command script
  17. #
  18. # Environment Variables
  19. #
  20. # JAVA_HOME The java implementation to use. Overrides JAVA_HOME.
  21. #
  22. # HADOOP_CLASSPATH Extra Java CLASSPATH entries.
  23. #
  24. # HADOOP_HEAPSIZE The maximum amount of heap to use, in MB.
  25. # Default is 1000.
  26. #
  27. # HADOOP_OPTS Extra Java runtime options.
  28. #
  29. # HADOOP_NAMENODE_OPTS These options are added to HADOOP_OPTS
  30. # HADOOP_CLIENT_OPTS when the respective command is run.
  31. # HADOOP_{COMMAND}_OPTS etc HADOOP_JT_OPTS applies to JobTracker
  32. # for e.g. HADOOP_CLIENT_OPTS applies to
  33. # more than one command (fs, dfs, fsck,
  34. # dfsadmin etc)
  35. #
  36. # HADOOP_CONF_DIR Alternate conf dir. Default is ${HADOOP_HOME}/conf.
  37. #
  38. # HADOOP_ROOT_LOGGER The root appender. Default is INFO,console
  39. #
  40. bin=`dirname "$0"`
  41. bin=`cd "$bin"; pwd`
  42. . "$bin"/hadoop-config.sh
  43. cygwin=false
  44. case "`uname`" in
  45. CYGWIN*) cygwin=true;;
  46. esac
  47. # if no args specified, show usage
  48. if [ $# = 0 ]; then
  49. echo "Usage: hadoop [--config confdir] COMMAND"
  50. echo "where COMMAND is one of:"
  51. echo " namenode -format format the DFS filesystem"
  52. echo " secondarynamenode run the DFS secondary namenode"
  53. echo " namenode run the DFS namenode"
  54. echo " datanode run a DFS datanode"
  55. echo " dfsadmin run a DFS admin client"
  56. echo " fsck run a DFS filesystem checking utility"
  57. echo " fs run a generic filesystem user client"
  58. echo " balancer run a cluster balancing utility"
  59. echo " jobtracker run the MapReduce job Tracker node"
  60. echo " pipes run a Pipes job"
  61. echo " tasktracker run a MapReduce task Tracker node"
  62. echo " job manipulate MapReduce jobs"
  63. echo " version print the version"
  64. echo " jar <jar> run a jar file"
  65. echo " distcp <srcurl> <desturl> copy file or directories recursively"
  66. echo " daemonlog get/set the log level for each daemon"
  67. echo " or"
  68. echo " CLASSNAME run the class named CLASSNAME"
  69. echo "Most commands print help when invoked w/o parameters."
  70. exit 1
  71. fi
  72. # get arguments
  73. COMMAND=$1
  74. shift
  75. if [ -f "${HADOOP_CONF_DIR}/hadoop-env.sh" ]; then
  76. . "${HADOOP_CONF_DIR}/hadoop-env.sh"
  77. fi
  78. # some Java parameters
  79. if [ "$JAVA_HOME" != "" ]; then
  80. #echo "run java in $JAVA_HOME"
  81. JAVA_HOME=$JAVA_HOME
  82. fi
  83. if [ "$JAVA_HOME" = "" ]; then
  84. echo "Error: JAVA_HOME is not set."
  85. exit 1
  86. fi
  87. JAVA=$JAVA_HOME/bin/java
  88. JAVA_HEAP_MAX=-Xmx1000m
  89. # check envvars which might override default args
  90. if [ "$HADOOP_HEAPSIZE" != "" ]; then
  91. #echo "run with heapsize $HADOOP_HEAPSIZE"
  92. JAVA_HEAP_MAX="-Xmx""$HADOOP_HEAPSIZE""m"
  93. #echo $JAVA_HEAP_MAX
  94. fi
  95. # CLASSPATH initially contains $HADOOP_CONF_DIR
  96. CLASSPATH="${HADOOP_CONF_DIR}"
  97. CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar
  98. # for developers, add Hadoop classes to CLASSPATH
  99. if [ -d "$HADOOP_HOME/build/classes" ]; then
  100. CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build/classes
  101. fi
  102. if [ -d "$HADOOP_HOME/build/webapps" ]; then
  103. CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build
  104. fi
  105. if [ -d "$HADOOP_HOME/build/test/classes" ]; then
  106. CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build/test/classes
  107. fi
  108. # so that filenames w/ spaces are handled correctly in loops below
  109. IFS=
  110. # for releases, add core hadoop jar & webapps to CLASSPATH
  111. if [ -d "$HADOOP_HOME/webapps" ]; then
  112. CLASSPATH=${CLASSPATH}:$HADOOP_HOME
  113. fi
  114. for f in $HADOOP_HOME/hadoop-*-core.jar; do
  115. CLASSPATH=${CLASSPATH}:$f;
  116. done
  117. # add libs to CLASSPATH
  118. for f in $HADOOP_HOME/lib/*.jar; do
  119. CLASSPATH=${CLASSPATH}:$f;
  120. done
  121. for f in $HADOOP_HOME/lib/jetty-ext/*.jar; do
  122. CLASSPATH=${CLASSPATH}:$f;
  123. done
  124. # add user-specified CLASSPATH last
  125. if [ "$HADOOP_CLASSPATH" != "" ]; then
  126. CLASSPATH=${CLASSPATH}:${HADOOP_CLASSPATH}
  127. fi
  128. # default log directory & file
  129. if [ "$HADOOP_LOG_DIR" = "" ]; then
  130. HADOOP_LOG_DIR="$HADOOP_HOME/logs"
  131. fi
  132. if [ "$HADOOP_LOGFILE" = "" ]; then
  133. HADOOP_LOGFILE='hadoop.log'
  134. fi
  135. # cygwin path translation
  136. if $cygwin; then
  137. CLASSPATH=`cygpath -p -w "$CLASSPATH"`
  138. HADOOP_HOME=`cygpath -d "$HADOOP_HOME"`
  139. HADOOP_LOG_DIR=`cygpath -d "$HADOOP_LOG_DIR"`
  140. fi
  141. # setup 'java.library.path' for native-hadoop code if necessary
  142. JAVA_LIBRARY_PATH=''
  143. if [ -d "${HADOOP_HOME}/build/native" -o -d "${HADOOP_HOME}/lib/native" ]; then
  144. JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"`
  145. if [ -d "$HADOOP_HOME/build/native" ]; then
  146. JAVA_LIBRARY_PATH=${HADOOP_HOME}/build/native/${JAVA_PLATFORM}/lib
  147. fi
  148. if [ -d "${HADOOP_HOME}/lib/native" ]; then
  149. if [ "x$JAVA_LIBRARY_PATH" != "x" ]; then
  150. JAVA_LIBRARY_PATH=${JAVA_LIBRARY_PATH}:${HADOOP_HOME}/lib/native/${JAVA_PLATFORM}
  151. else
  152. JAVA_LIBRARY_PATH=${HADOOP_HOME}/lib/native/${JAVA_PLATFORM}
  153. fi
  154. fi
  155. fi
  156. # cygwin path translation
  157. if $cygwin; then
  158. JAVA_LIBRARY_PATH=`cygpath -p "$JAVA_LIBRARY_PATH"`
  159. fi
  160. # restore ordinary behaviour
  161. unset IFS
  162. # figure out which class to run
  163. if [ "$COMMAND" = "namenode" ] ; then
  164. CLASS='org.apache.hadoop.dfs.NameNode'
  165. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_NAMENODE_OPTS"
  166. elif [ "$COMMAND" = "secondarynamenode" ] ; then
  167. CLASS='org.apache.hadoop.dfs.SecondaryNameNode'
  168. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_SECONDARYNAMENODE_OPTS"
  169. elif [ "$COMMAND" = "datanode" ] ; then
  170. CLASS='org.apache.hadoop.dfs.DataNode'
  171. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_DATANODE_OPTS"
  172. elif [ "$COMMAND" = "fs" ] ; then
  173. CLASS=org.apache.hadoop.fs.FsShell
  174. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  175. elif [ "$COMMAND" = "dfs" ] ; then
  176. CLASS=org.apache.hadoop.fs.FsShell
  177. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  178. elif [ "$COMMAND" = "dfsadmin" ] ; then
  179. CLASS=org.apache.hadoop.dfs.DFSAdmin
  180. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  181. elif [ "$COMMAND" = "fsck" ] ; then
  182. CLASS=org.apache.hadoop.dfs.DFSck
  183. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  184. elif [ "$COMMAND" = "balancer" ] ; then
  185. CLASS=org.apache.hadoop.dfs.Balancer
  186. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_BALANCER_OPTS"
  187. elif [ "$COMMAND" = "jobtracker" ] ; then
  188. CLASS=org.apache.hadoop.mapred.JobTracker
  189. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_JOBTRACKER_OPTS"
  190. elif [ "$COMMAND" = "tasktracker" ] ; then
  191. CLASS=org.apache.hadoop.mapred.TaskTracker
  192. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_TASKTRACKER_OPTS"
  193. elif [ "$COMMAND" = "job" ] ; then
  194. CLASS=org.apache.hadoop.mapred.JobClient
  195. elif [ "$COMMAND" = "pipes" ] ; then
  196. CLASS=org.apache.hadoop.mapred.pipes.Submitter
  197. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  198. elif [ "$COMMAND" = "version" ] ; then
  199. CLASS=org.apache.hadoop.util.VersionInfo
  200. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  201. elif [ "$COMMAND" = "jar" ] ; then
  202. CLASS=org.apache.hadoop.mapred.JobShell
  203. elif [ "$COMMAND" = "distcp" ] ; then
  204. CLASS=org.apache.hadoop.util.CopyFiles
  205. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  206. elif [ "$COMMAND" = "daemonlog" ] ; then
  207. CLASS=org.apache.hadoop.log.LogLevel
  208. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  209. else
  210. CLASS=$COMMAND
  211. fi
  212. HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.log.dir=$HADOOP_LOG_DIR"
  213. HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.log.file=$HADOOP_LOGFILE"
  214. HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.home.dir=$HADOOP_HOME"
  215. HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.id.str=$HADOOP_IDENT_STRING"
  216. HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.root.logger=${HADOOP_ROOT_LOGGER:-INFO,console}"
  217. if [ "x$JAVA_LIBRARY_PATH" != "x" ]; then
  218. HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$JAVA_LIBRARY_PATH"
  219. fi
  220. # run it
  221. exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"