hadoop 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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. # resolve links - $0 may be a softlink
  17. THIS="$0"
  18. while [ -h "$THIS" ]; do
  19. ls=`ls -ld "$THIS"`
  20. link=`expr "$ls" : '.*-> \(.*\)$'`
  21. if expr "$link" : '.*/.*' > /dev/null; then
  22. THIS="$link"
  23. else
  24. THIS=`dirname "$THIS"`/"$link"
  25. fi
  26. done
  27. # if no args specified, show usage
  28. if [ $# = 0 ]; then
  29. echo "Usage: hadoop COMMAND"
  30. echo "where COMMAND is one of:"
  31. echo " namenode -format format the DFS filesystem"
  32. echo " namenode run the DFS namenode"
  33. echo " datanode run a DFS datanode"
  34. echo " dfs run a DFS admin client"
  35. echo " jobtracker run the MapReduce job Tracker node"
  36. echo " tasktracker run a MapReduce task Tracker node"
  37. echo " job manipulate MapReduce jobs"
  38. echo " jar <jar> run a jar file"
  39. echo " or"
  40. echo " CLASSNAME run the class named CLASSNAME"
  41. echo "Most commands print help when invoked w/o parameters."
  42. exit 1
  43. fi
  44. # get arguments
  45. COMMAND=$1
  46. shift
  47. # some directories
  48. THIS_DIR=`dirname "$THIS"`
  49. HADOOP_HOME=`cd "$THIS_DIR/.." ; pwd`
  50. # Allow alternate conf dir location.
  51. HADOOP_CONF_DIR="${HADOOP_CONF_DIR:-$HADOOP_HOME/conf}"
  52. if [ -f "${HADOOP_CONF_DIR}/hadoop-env.sh" ]; then
  53. source ${HADOOP_CONF_DIR}/hadoop-env.sh
  54. fi
  55. # some Java parameters
  56. if [ "$JAVA_HOME" != "" ]; then
  57. #echo "run java in $JAVA_HOME"
  58. JAVA_HOME=$JAVA_HOME
  59. fi
  60. if [ "$JAVA_HOME" = "" ]; then
  61. echo "Error: JAVA_HOME is not set."
  62. exit 1
  63. fi
  64. JAVA=$JAVA_HOME/bin/java
  65. JAVA_HEAP_MAX=-Xmx1000m
  66. # check envvars which might override default args
  67. if [ "$HADOOP_HEAPSIZE" != "" ]; then
  68. #echo "run with heapsize $HADOOP_HEAPSIZE"
  69. JAVA_HEAP_MAX="-Xmx""$HADOOP_HEAPSIZE""m"
  70. #echo $JAVA_HEAP_MAX
  71. fi
  72. # CLASSPATH initially contains $HADOOP_CONF_DIR
  73. CLASSPATH="${HADOOP_CONF_DIR}"
  74. CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar
  75. # for developers, add Hadoop classes to CLASSPATH
  76. if [ -d "$HADOOP_HOME/build/classes" ]; then
  77. CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build/classes
  78. fi
  79. if [ -d "$HADOOP_HOME/build/webapps" ]; then
  80. CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build
  81. fi
  82. if [ -d "$HADOOP_HOME/build/test/classes" ]; then
  83. CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build/test/classes
  84. fi
  85. # so that filenames w/ spaces are handled correctly in loops below
  86. IFS=
  87. # for releases, add hadoop jars & webapps to CLASSPATH
  88. if [ -d "$HADOOP_HOME/webapps" ]; then
  89. CLASSPATH=${CLASSPATH}:$HADOOP_HOME
  90. fi
  91. for f in $HADOOP_HOME/hadoop-*.jar; do
  92. CLASSPATH=${CLASSPATH}:$f;
  93. done
  94. # add libs to CLASSPATH
  95. for f in $HADOOP_HOME/lib/*.jar; do
  96. CLASSPATH=${CLASSPATH}:$f;
  97. done
  98. for f in $HADOOP_HOME/lib/jetty-ext/*.jar; do
  99. CLASSPATH=${CLASSPATH}:$f;
  100. done
  101. # restore ordinary behaviour
  102. unset IFS
  103. # figure out which class to run
  104. if [ "$COMMAND" = "namenode" ] ; then
  105. CLASS='org.apache.hadoop.dfs.NameNode'
  106. elif [ "$COMMAND" = "datanode" ] ; then
  107. CLASS='org.apache.hadoop.dfs.DataNode'
  108. elif [ "$COMMAND" = "dfs" ] ; then
  109. CLASS=org.apache.hadoop.dfs.DFSShell
  110. elif [ "$COMMAND" = "jobtracker" ] ; then
  111. CLASS=org.apache.hadoop.mapred.JobTracker
  112. elif [ "$COMMAND" = "tasktracker" ] ; then
  113. CLASS=org.apache.hadoop.mapred.TaskTracker
  114. elif [ "$COMMAND" = "job" ] ; then
  115. CLASS=org.apache.hadoop.mapred.JobClient
  116. elif [ "$COMMAND" = "jar" ] ; then
  117. JAR="$1"
  118. shift
  119. CLASS=`"$0" org.apache.hadoop.util.PrintJarMainClass "$JAR"`
  120. if [ $? != 0 ]; then
  121. echo "Error: Could not find main class in jar file $JAR"
  122. exit 1
  123. fi
  124. CLASSPATH=${CLASSPATH}:${JAR}
  125. else
  126. CLASS=$COMMAND
  127. fi
  128. # cygwin path translation
  129. if expr `uname` : 'CYGWIN*' > /dev/null; then
  130. CLASSPATH=`cygpath -p -w "$CLASSPATH"`
  131. fi
  132. # run it
  133. exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"