hadoop 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. #!/bin/bash
  2. #
  3. # The Hadoop command script
  4. #
  5. # Environment Variables
  6. #
  7. # JAVA_HOME The java implementation to use. Overrides JAVA_HOME.
  8. #
  9. # HADOOP_HEAPSIZE The maximum amount of heap to use, in MB.
  10. # Default is 1000.
  11. #
  12. # HADOOP_OPTS Extra Java runtime options.
  13. #
  14. # HADOOP_CONF_DIR Alternate conf dir. Default is ${HADOOP_HOME}/conf.
  15. #
  16. # HADOOP_ROOT_LOGGER The root appender. Default is INFO,console
  17. #
  18. # resolve links - $0 may be a softlink
  19. THIS="$0"
  20. while [ -h "$THIS" ]; do
  21. ls=`ls -ld "$THIS"`
  22. link=`expr "$ls" : '.*-> \(.*\)$'`
  23. if expr "$link" : '.*/.*' > /dev/null; then
  24. THIS="$link"
  25. else
  26. THIS=`dirname "$THIS"`/"$link"
  27. fi
  28. done
  29. # if no args specified, show usage
  30. if [ $# = 0 ]; then
  31. echo "Usage: hadoop COMMAND"
  32. echo "where COMMAND is one of:"
  33. echo " namenode -format format the DFS filesystem"
  34. echo " namenode run the DFS namenode"
  35. echo " datanode run a DFS datanode"
  36. echo " dfs run a DFS admin client"
  37. echo " fsck run a DFS filesystem checking utility"
  38. echo " jobtracker run the MapReduce job Tracker node"
  39. echo " tasktracker run a MapReduce task Tracker node"
  40. echo " job manipulate MapReduce jobs"
  41. echo " jar <jar> run a jar file"
  42. echo " distcp <srcurl> <desturl> copy file or directories recursively"
  43. echo " or"
  44. echo " CLASSNAME run the class named CLASSNAME"
  45. echo "Most commands print help when invoked w/o parameters."
  46. exit 1
  47. fi
  48. # get arguments
  49. COMMAND=$1
  50. shift
  51. # some directories
  52. THIS_DIR=`dirname "$THIS"`
  53. export HADOOP_HOME=`cd "$THIS_DIR/.." ; pwd`
  54. # Allow alternate conf dir location.
  55. HADOOP_CONF_DIR="${HADOOP_CONF_DIR:-$HADOOP_HOME/conf}"
  56. if [ -f "${HADOOP_CONF_DIR}/hadoop-env.sh" ]; then
  57. source "${HADOOP_CONF_DIR}/hadoop-env.sh"
  58. fi
  59. # some Java parameters
  60. if [ "$JAVA_HOME" != "" ]; then
  61. #echo "run java in $JAVA_HOME"
  62. JAVA_HOME=$JAVA_HOME
  63. fi
  64. if [ "$JAVA_HOME" = "" ]; then
  65. echo "Error: JAVA_HOME is not set."
  66. exit 1
  67. fi
  68. JAVA=$JAVA_HOME/bin/java
  69. JAVA_HEAP_MAX=-Xmx1000m
  70. # check envvars which might override default args
  71. if [ "$HADOOP_HEAPSIZE" != "" ]; then
  72. #echo "run with heapsize $HADOOP_HEAPSIZE"
  73. JAVA_HEAP_MAX="-Xmx""$HADOOP_HEAPSIZE""m"
  74. #echo $JAVA_HEAP_MAX
  75. fi
  76. # CLASSPATH initially contains $HADOOP_CONF_DIR
  77. CLASSPATH="${HADOOP_CONF_DIR}"
  78. CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar
  79. # for developers, add Hadoop classes to CLASSPATH
  80. if [ -d "$HADOOP_HOME/build/classes" ]; then
  81. CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build/classes
  82. fi
  83. if [ -d "$HADOOP_HOME/build/webapps" ]; then
  84. CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build
  85. fi
  86. if [ -d "$HADOOP_HOME/build/test/classes" ]; then
  87. CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build/test/classes
  88. fi
  89. # so that filenames w/ spaces are handled correctly in loops below
  90. IFS=
  91. # for releases, add hadoop jars & webapps to CLASSPATH
  92. if [ -d "$HADOOP_HOME/webapps" ]; then
  93. CLASSPATH=${CLASSPATH}:$HADOOP_HOME
  94. fi
  95. for f in $HADOOP_HOME/hadoop-*.jar; do
  96. CLASSPATH=${CLASSPATH}:$f;
  97. done
  98. # add libs to CLASSPATH
  99. for f in $HADOOP_HOME/lib/*.jar; do
  100. CLASSPATH=${CLASSPATH}:$f;
  101. done
  102. for f in $HADOOP_HOME/lib/jetty-ext/*.jar; do
  103. CLASSPATH=${CLASSPATH}:$f;
  104. done
  105. # restore ordinary behaviour
  106. unset IFS
  107. # default log directory & file
  108. if [ "$HADOOP_LOG_DIR" = "" ]; then
  109. HADOOP_LOG_DIR="$HADOOP_HOME/logs"
  110. fi
  111. if [ "$HADOOP_LOGFILE" = "" ]; then
  112. HADOOP_LOGFILE='hadoop.log'
  113. fi
  114. # figure out which class to run
  115. if [ "$COMMAND" = "namenode" ] ; then
  116. CLASS='org.apache.hadoop.dfs.NameNode'
  117. elif [ "$COMMAND" = "datanode" ] ; then
  118. CLASS='org.apache.hadoop.dfs.DataNode'
  119. elif [ "$COMMAND" = "dfs" ] ; then
  120. CLASS=org.apache.hadoop.dfs.DFSShell
  121. elif [ "$COMMAND" = "fsck" ] ; then
  122. CLASS=org.apache.hadoop.dfs.DFSck
  123. elif [ "$COMMAND" = "jobtracker" ] ; then
  124. CLASS=org.apache.hadoop.mapred.JobTracker
  125. elif [ "$COMMAND" = "tasktracker" ] ; then
  126. CLASS=org.apache.hadoop.mapred.TaskTracker
  127. elif [ "$COMMAND" = "job" ] ; then
  128. CLASS=org.apache.hadoop.mapred.JobClient
  129. elif [ "$COMMAND" = "jar" ] ; then
  130. CLASS=org.apache.hadoop.util.RunJar
  131. elif [ "$COMMAND" = "distcp" ] ; then
  132. CLASS=org.apache.hadoop.util.CopyFiles
  133. else
  134. CLASS=$COMMAND
  135. fi
  136. # cygwin path translation
  137. if expr `uname` : 'CYGWIN*' > /dev/null; then
  138. CLASSPATH=`cygpath -p -w "$CLASSPATH"`
  139. HADOOP_HOME=`cygpath -d "$HADOOP_HOME"`
  140. HADOOP_LOG_DIR=`cygpath -d "$HADOOP_LOG_DIR"`
  141. fi
  142. HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.log.dir=$HADOOP_LOG_DIR"
  143. HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.log.file=$HADOOP_LOGFILE"
  144. HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.home.dir=$HADOOP_HOME"
  145. HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.id.str=$HADOOP_IDENT_STRING"
  146. HADOOP_OPTS="$HADOOP_OPTS -Dhadoop.root.logger=${HADOOP_ROOT_LOGGER:-INFO,console}"
  147. # run it
  148. exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"