yarn 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  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. function hadoop_usage
  17. {
  18. echo "Usage: yarn [--config confdir] [--daemon (start|stop|status)] COMMAND"
  19. echo "where COMMAND is one of:"
  20. echo " application prints application(s) report/kill application"
  21. echo " applicationattempt prints applicationattempt(s) report"
  22. echo " classpath prints the class path needed to get the"
  23. echo " Hadoop jar and the required libraries"
  24. echo " container prints container(s) report"
  25. echo " daemonlog get/set the log level for each daemon"
  26. echo " jar <jar> run a jar file"
  27. echo " logs dump container logs"
  28. echo " node prints node report(s)"
  29. echo " nodemanager run a nodemanager on each slave"
  30. echo " proxyserver run the web app proxy server"
  31. echo " resourcemanager run the ResourceManager"
  32. echo " resourcemanager -format-state-store deletes the RMStateStore"
  33. echo " rmadmin admin tools"
  34. echo " sharedcachemanager run the SharedCacheManager daemon"
  35. echo " timelineserver run the timeline server"
  36. echo " version print the version"
  37. echo " or"
  38. echo " CLASSNAME run the class named CLASSNAME"
  39. echo "Most commands print help when invoked w/o parameters."
  40. }
  41. # let's locate libexec...
  42. if [[ -n "${HADOOP_PREFIX}" ]]; then
  43. DEFAULT_LIBEXEC_DIR="${HADOOP_PREFIX}/libexec"
  44. else
  45. this="${BASH_SOURCE-$0}"
  46. bin=$(cd -P -- "$(dirname -- "${this}")" >/dev/null && pwd -P)
  47. DEFAULT_LIBEXEC_DIR="${bin}/../libexec"
  48. fi
  49. HADOOP_LIBEXEC_DIR="${HADOOP_LIBEXEC_DIR:-$DEFAULT_LIBEXEC_DIR}"
  50. # shellcheck disable=SC2034
  51. HADOOP_NEW_CONFIG=true
  52. if [[ -f "${HADOOP_LIBEXEC_DIR}/yarn-config.sh" ]]; then
  53. . "${HADOOP_LIBEXEC_DIR}/yarn-config.sh"
  54. else
  55. echo "ERROR: Cannot execute ${HADOOP_LIBEXEC_DIR}/yarn-config.sh." 2>&1
  56. exit 1
  57. fi
  58. # if no args specified, show usage
  59. if [[ $# = 0 ]]; then
  60. hadoop_exit_with_usage 1
  61. fi
  62. # get arguments
  63. COMMAND=$1
  64. shift
  65. case "${COMMAND}" in
  66. application|applicationattempt|container)
  67. CLASS=org.apache.hadoop.yarn.client.cli.ApplicationCLI
  68. hadoop_debug "Append YARN_CLIENT_OPTS onto YARN_OPTS"
  69. YARN_OPTS="${YARN_OPTS} ${YARN_CLIENT_OPTS}"
  70. set -- "${COMMAND}" "$@"
  71. ;;
  72. classpath)
  73. hadoop_finalize
  74. echo "${CLASSPATH}"
  75. exit
  76. ;;
  77. daemonlog)
  78. CLASS=org.apache.hadoop.log.LogLevel
  79. hadoop_debug "Append YARN_CLIENT_OPTS onto YARN_OPTS"
  80. YARN_OPTS="${YARN_OPTS} ${YARN_CLIENT_OPTS}"
  81. ;;
  82. jar)
  83. CLASS=org.apache.hadoop.util.RunJar
  84. hadoop_debug "Append YARN_CLIENT_OPTS onto YARN_OPTS"
  85. YARN_OPTS="${YARN_OPTS} ${YARN_CLIENT_OPTS}"
  86. ;;
  87. historyserver)
  88. daemon="true"
  89. echo "DEPRECATED: Use of this command to start the timeline server is deprecated." 1>&2
  90. echo "Instead use the timelineserver command for it." 1>&2
  91. echo "Starting the History Server anyway..." 1>&2
  92. CLASS='org.apache.hadoop.yarn.server.applicationhistoryservice.ApplicationHistoryServer'
  93. ;;
  94. logs)
  95. CLASS=org.apache.hadoop.yarn.client.cli.LogsCLI
  96. hadoop_debug "Append YARN_CLIENT_OPTS onto YARN_OPTS"
  97. YARN_OPTS="${YARN_OPTS} ${YARN_CLIENT_OPTS}"
  98. ;;
  99. node)
  100. CLASS=org.apache.hadoop.yarn.client.cli.NodeCLI
  101. hadoop_debug "Append YARN_CLIENT_OPTS onto YARN_OPTS"
  102. YARN_OPTS="${YARN_OPTS} ${YARN_CLIENT_OPTS}"
  103. ;;
  104. nodemanager)
  105. daemon="true"
  106. CLASS='org.apache.hadoop.yarn.server.nodemanager.NodeManager'
  107. hadoop_debug "Append YARN_NODEMANAGER_OPTS onto YARN_OPTS"
  108. YARN_OPTS="${YARN_OPTS} ${YARN_NODEMANAGER_OPTS}"
  109. if [[ -n "${YARN_NODEMANAGER_HEAPSIZE}" ]]; then
  110. JAVA_HEAP_MAX="-Xmx${YARN_NODEMANAGER_HEAPSIZE}m"
  111. fi
  112. ;;
  113. proxyserver)
  114. daemon="true"
  115. CLASS='org.apache.hadoop.yarn.server.webproxy.WebAppProxyServer'
  116. hadoop_debug "Append YARN_PROXYSERVER_OPTS onto YARN_OPTS"
  117. YARN_OPTS="${YARN_OPTS} ${YARN_PROXYSERVER_OPTS}"
  118. if [[ -n "${YARN_PROXYSERVER_HEAPSIZE}" ]]; then
  119. JAVA_HEAP_MAX="-Xmx${YARN_PROXYSERVER_HEAPSIZE}m"
  120. fi
  121. ;;
  122. resourcemanager)
  123. daemon="true"
  124. CLASS='org.apache.hadoop.yarn.server.resourcemanager.ResourceManager'
  125. YARN_OPTS="${YARN_OPTS} ${YARN_RESOURCEMANAGER_OPTS}"
  126. hadoop_debug "Append YARN_RESOURCEMANAGER_OPTS onto YARN_OPTS"
  127. if [[ -n "${YARN_RESOURCEMANAGER_HEAPSIZE}" ]]; then
  128. JAVA_HEAP_MAX="-Xmx${YARN_RESOURCEMANAGER_HEAPSIZE}m"
  129. fi
  130. ;;
  131. rmadmin)
  132. CLASS='org.apache.hadoop.yarn.client.cli.RMAdminCLI'
  133. hadoop_debug "Append YARN_CLIENT_OPTS onto YARN_OPTS"
  134. YARN_OPTS="${YARN_OPTS} ${YARN_CLIENT_OPTS}"
  135. ;;
  136. timelineserver)
  137. daemon="true"
  138. CLASS='org.apache.hadoop.yarn.server.applicationhistoryservice.ApplicationHistoryServer'
  139. hadoop_debug "Append YARN_TIMELINESERVER_OPTS onto YARN_OPTS"
  140. YARN_OPTS="${YARN_OPTS} ${YARN_TIMELINESERVER_OPTS}"
  141. if [[ -n "${YARN_TIMELINESERVER_HEAPSIZE}" ]]; then
  142. JAVA_HEAP_MAX="-Xmx${YARN_TIMELINESERVER_HEAPSIZE}m"
  143. fi
  144. ;;
  145. sharedcachemanager)
  146. daemon="true"
  147. CLASS='org.apache.hadoop.yarn.server.sharedcachemanager.SharedCacheManager'
  148. YARN_OPTS="$YARN_OPTS $YARN_SHAREDCACHEMANAGER_OPTS"
  149. ;;
  150. version)
  151. CLASS=org.apache.hadoop.util.VersionInfo
  152. hadoop_debug "Append YARN_CLIENT_OPTS onto YARN_OPTS"
  153. YARN_OPTS="${YARN_OPTS} ${YARN_CLIENT_OPTS}"
  154. ;;
  155. *)
  156. CLASS="${COMMAND}"
  157. if ! hadoop_validate_classname "${CLASS}"; then
  158. hadoop_exit_with_usage 1
  159. fi
  160. ;;
  161. esac
  162. # set HADOOP_OPTS to YARN_OPTS so that we can use
  163. # finalize, etc, without doing anything funky
  164. hadoop_debug "Resetting HADOOP_OPTS=YARN_OPTS"
  165. # shellcheck disable=SC2034
  166. HADOOP_OPTS="${YARN_OPTS}"
  167. daemon_outfile="${HADOOP_LOG_DIR}/hadoop-${HADOOP_IDENT_STRING}-${COMMAND}-${HOSTNAME}.out"
  168. daemon_pidfile="${HADOOP_PID_DIR}/hadoop-${HADOOP_IDENT_STRING}-${COMMAND}.pid"
  169. if [[ "${HADOOP_DAEMON_MODE}" != "default" ]]; then
  170. # shellcheck disable=SC2034
  171. HADOOP_ROOT_LOGGER="${HADOOP_DAEMON_ROOT_LOGGER}"
  172. YARN_ROOT_LOGGER="${HADOOP_DAEMON_ROOT_LOGGER}"
  173. HADOOP_LOGFILE="hadoop-${HADOOP_IDENT_STRING}-${COMMAND}-${HOSTNAME}.log"
  174. fi
  175. hadoop_add_param HADOOP_OPTS Xmx "${JAVA_HEAP_MAX}"
  176. # Add YARN custom options to comamnd line in case someone actaully
  177. # used these.
  178. #
  179. # Note that we are replacing ' ' with '\ ' so that when we exec
  180. # stuff it works
  181. #
  182. hadoop_add_param HADOOP_OPTS yarn.log.dir "-Dyarn.log.dir=${HADOOP_LOG_DIR/ /\ }"
  183. hadoop_add_param HADOOP_OPTS yarn.log.file "-Dyarn.log.file=${HADOOP_LOGFILE/ /\ }"
  184. hadoop_add_param HADOOP_OPTS yarn.home.dir "-Dyarn.home.dir=${HADOOP_YARN_HOME/ /\ }"
  185. hadoop_add_param HADOOP_OPTS yarn.root.logger "-Dyarn.root.logger=${YARN_ROOT_LOGGER:-INFO,console}"
  186. hadoop_finalize
  187. if [[ -n "${daemon}" ]]; then
  188. if [[ -n "${secure_service}" ]]; then
  189. hadoop_secure_daemon_handler "${HADOOP_DAEMON_MODE}" "${COMMAND}" \
  190. "${CLASS}" "${daemon_pidfile}" "${daemon_outfile}" \
  191. "${priv_pidfile}" "${priv_outfile}" "${priv_errfile}" "$@"
  192. else
  193. hadoop_daemon_handler "${HADOOP_DAEMON_MODE}" "${COMMAND}" "${CLASS}" \
  194. "${daemon_pidfile}" "${daemon_outfile}" "$@"
  195. fi
  196. exit $?
  197. else
  198. hadoop_java_exec "${COMMAND}" "${CLASS}" "$@"
  199. fi