yarn 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  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] [COMMAND | CLASSNAME]"
  19. echo " CLASSNAME run the class named CLASSNAME"
  20. echo " or"
  21. echo " where COMMAND is one of:"
  22. echo " application prints application(s) report/kill application"
  23. echo " applicationattempt prints applicationattempt(s) report"
  24. echo " classpath prints the class path needed to get the"
  25. echo " Hadoop jar and the required libraries"
  26. echo " cluster prints cluster information"
  27. echo " container prints container(s) report"
  28. echo " daemonlog get/set the log level for each daemon"
  29. echo " jar <jar> run a jar file"
  30. echo " logs dump container logs"
  31. echo " node prints node report(s)"
  32. echo " nodemanager run a nodemanager on each slave"
  33. echo " proxyserver run the web app proxy server"
  34. echo " queue prints queue information"
  35. echo " resourcemanager run the ResourceManager"
  36. echo " Use -format-state-store for deleting the RMStateStore."
  37. echo " Use -remove-application-from-state-store <appId> for "
  38. echo " removing application from RMStateStore."
  39. echo " rmadmin admin tools"
  40. echo " scmadmin SharedCacheManager admin tools"
  41. echo " sharedcachemanager run the SharedCacheManager daemon"
  42. echo " timelineserver run the timeline server"
  43. echo " top view cluster information"
  44. echo " version print the version"
  45. echo ""
  46. echo "Most commands print help when invoked w/o parameters."
  47. }
  48. # let's locate libexec...
  49. if [[ -n "${HADOOP_PREFIX}" ]]; then
  50. DEFAULT_LIBEXEC_DIR="${HADOOP_PREFIX}/libexec"
  51. else
  52. this="${BASH_SOURCE-$0}"
  53. bin=$(cd -P -- "$(dirname -- "${this}")" >/dev/null && pwd -P)
  54. DEFAULT_LIBEXEC_DIR="${bin}/../libexec"
  55. fi
  56. HADOOP_LIBEXEC_DIR="${HADOOP_LIBEXEC_DIR:-$DEFAULT_LIBEXEC_DIR}"
  57. # shellcheck disable=SC2034
  58. HADOOP_NEW_CONFIG=true
  59. if [[ -f "${HADOOP_LIBEXEC_DIR}/yarn-config.sh" ]]; then
  60. . "${HADOOP_LIBEXEC_DIR}/yarn-config.sh"
  61. else
  62. echo "ERROR: Cannot execute ${HADOOP_LIBEXEC_DIR}/yarn-config.sh." 2>&1
  63. exit 1
  64. fi
  65. # if no args specified, show usage
  66. if [[ $# = 0 ]]; then
  67. hadoop_exit_with_usage 1
  68. fi
  69. # get arguments
  70. COMMAND=$1
  71. shift
  72. case "${COMMAND}" in
  73. application|applicationattempt|container)
  74. CLASS=org.apache.hadoop.yarn.client.cli.ApplicationCLI
  75. hadoop_debug "Append YARN_CLIENT_OPTS onto HADOOP_OPTS"
  76. HADOOP_OPTS="${HADOOP_OPTS} ${YARN_CLIENT_OPTS}"
  77. set -- "${COMMAND}" "$@"
  78. ;;
  79. classpath)
  80. hadoop_do_classpath_subcommand CLASS "$@"
  81. ;;
  82. cluster)
  83. CLASS=org.apache.hadoop.yarn.client.cli.ClusterCLI
  84. hadoop_debug "Append YARN_CLIENT_OPTS onto YARN_OPTS"
  85. YARN_OPTS="${YARN_OPTS} ${YARN_CLIENT_OPTS}"
  86. ;;
  87. daemonlog)
  88. CLASS=org.apache.hadoop.log.LogLevel
  89. hadoop_debug "Append YARN_CLIENT_OPTS onto HADOOP_OPTS"
  90. HADOOP_OPTS="${HADOOP_OPTS} ${YARN_CLIENT_OPTS}"
  91. ;;
  92. jar)
  93. CLASS=org.apache.hadoop.util.RunJar
  94. hadoop_debug "Append YARN_CLIENT_OPTS onto HADOOP_OPTS"
  95. HADOOP_OPTS="${HADOOP_OPTS} ${YARN_CLIENT_OPTS}"
  96. ;;
  97. historyserver)
  98. supportdaemonization="true"
  99. echo "DEPRECATED: Use of this command to start the timeline server is deprecated." 1>&2
  100. echo "Instead use the timelineserver command for it." 1>&2
  101. echo "Starting the History Server anyway..." 1>&2
  102. CLASS='org.apache.hadoop.yarn.server.applicationhistoryservice.ApplicationHistoryServer'
  103. ;;
  104. logs)
  105. CLASS=org.apache.hadoop.yarn.client.cli.LogsCLI
  106. hadoop_debug "Append YARN_CLIENT_OPTS onto HADOOP_OPTS"
  107. HADOOP_OPTS="${HADOOP_OPTS} ${YARN_CLIENT_OPTS}"
  108. ;;
  109. node)
  110. CLASS=org.apache.hadoop.yarn.client.cli.NodeCLI
  111. hadoop_debug "Append YARN_CLIENT_OPTS onto HADOOP_OPTS"
  112. HADOOP_OPTS="${HADOOP_OPTS} ${YARN_CLIENT_OPTS}"
  113. ;;
  114. nodemanager)
  115. supportdaemonization="true"
  116. CLASS='org.apache.hadoop.yarn.server.nodemanager.NodeManager'
  117. hadoop_debug "Append YARN_NODEMANAGER_OPTS onto HADOOP_OPTS"
  118. HADOOP_OPTS="${HADOOP_OPTS} ${YARN_NODEMANAGER_OPTS}"
  119. # Backwards compatibility
  120. if [[ -n "${YARN_NODEMANAGER_HEAPSIZE}" ]]; then
  121. HADOOP_HEAPSIZE_MAX="${YARN_NODEMANAGER_HEAPSIZE}"
  122. fi
  123. ;;
  124. proxyserver)
  125. supportdaemonization="true"
  126. CLASS='org.apache.hadoop.yarn.server.webproxy.WebAppProxyServer'
  127. hadoop_debug "Append YARN_PROXYSERVER_OPTS onto HADOOP_OPTS"
  128. HADOOP_OPTS="${HADOOP_OPTS} ${YARN_PROXYSERVER_OPTS}"
  129. # Backwards compatibility
  130. if [[ -n "${YARN_PROXYSERVER_HEAPSIZE}" ]]; then
  131. HADOOP_HEAPSIZE_MAX="${YARN_PROXYSERVER_HEAPSIZE}"
  132. fi
  133. ;;
  134. queue)
  135. CLASS=org.apache.hadoop.yarn.client.cli.QueueCLI
  136. hadoop_debug "Append YARN_CLIENT_OPTS onto HADOOP_OPTS"
  137. HADOOP_OPTS="${HADOOP_OPTS} ${YARN_CLIENT_OPTS}"
  138. ;;
  139. resourcemanager)
  140. supportdaemonization="true"
  141. CLASS='org.apache.hadoop.yarn.server.resourcemanager.ResourceManager'
  142. HADOOP_OPTS="${HADOOP_OPTS} ${YARN_RESOURCEMANAGER_OPTS}"
  143. hadoop_debug "Append YARN_RESOURCEMANAGER_OPTS onto HADOOP_OPTS"
  144. # Backwards compatibility
  145. if [[ -n "${YARN_RESOURCEMANAGER_HEAPSIZE}" ]]; then
  146. HADOOP_HEAPSIZE_MAX="${YARN_RESOURCEMANAGER_HEAPSIZE}"
  147. fi
  148. ;;
  149. rmadmin)
  150. CLASS='org.apache.hadoop.yarn.client.cli.RMAdminCLI'
  151. hadoop_debug "Append YARN_CLIENT_OPTS onto HADOOP_OPTS"
  152. HADOOP_OPTS="${HADOOP_OPTS} ${YARN_CLIENT_OPTS}"
  153. ;;
  154. scmadmin)
  155. CLASS='org.apache.hadoop.yarn.client.SCMAdmin'
  156. hadoop_debug "Append YARN_CLIENT_OPTS onto HADOOP_OPTS"
  157. HADOOP_OPTS="${HADOOP_OPTS} ${YARN_CLIENT_OPTS}"
  158. ;;
  159. sharedcachemanager)
  160. supportdaemonization="true"
  161. CLASS='org.apache.hadoop.yarn.server.sharedcachemanager.SharedCacheManager'
  162. hadoop_debug "Append YARN_SHAREDCACHEMANAGER_OPTS onto HADOOP_OPTS"
  163. HADOOP_OPTS="${HADOOP_OPTS} ${YARN_SHAREDCACHEMANAGER_OPTS}"
  164. ;;
  165. timelineserver)
  166. supportdaemonization="true"
  167. CLASS='org.apache.hadoop.yarn.server.applicationhistoryservice.ApplicationHistoryServer'
  168. hadoop_debug "Append YARN_TIMELINESERVER_OPTS onto HADOOP_OPTS"
  169. HADOOP_OPTS="${HADOOP_OPTS} ${YARN_TIMELINESERVER_OPTS}"
  170. # Backwards compatibility
  171. if [[ -n "${YARN_TIMELINESERVER_HEAPSIZE}" ]]; then
  172. HADOOP_HEAPSIZE_MAX="${YARN_TIMELINESERVER_HEAPSIZE}"
  173. fi
  174. ;;
  175. version)
  176. CLASS=org.apache.hadoop.util.VersionInfo
  177. hadoop_debug "Append YARN_CLIENT_OPTS onto HADOOP_OPTS"
  178. HADOOP_OPTS="${HADOOP_OPTS} ${YARN_CLIENT_OPTS}"
  179. ;;
  180. top)
  181. doNotSetCols=0
  182. doNotSetRows=0
  183. for i in "$@"; do
  184. if [[ $i == "-cols" ]]; then
  185. doNotSetCols=1
  186. fi
  187. if [[ $i == "-rows" ]]; then
  188. doNotSetRows=1
  189. fi
  190. done
  191. if [ $doNotSetCols == 0 ] && [ -n "${TERM}" ]; then
  192. cols=$(tput cols)
  193. if [ -n "$cols" ]; then
  194. args=( $@ )
  195. args=("${args[@]}" "-cols" "$cols")
  196. set -- "${args[@]}"
  197. fi
  198. fi
  199. if [ $doNotSetRows == 0 ] && [ -n "${TERM}" ]; then
  200. rows=$(tput lines)
  201. if [ -n "$rows" ]; then
  202. args=( $@ )
  203. args=("${args[@]}" "-rows" "$rows")
  204. set -- "${args[@]}"
  205. fi
  206. fi
  207. CLASS=org.apache.hadoop.yarn.client.cli.TopCLI
  208. hadoop_debug "Append YARN_CLIENT_OPTS onto HADOOP_OPTS"
  209. HADOOP_OPTS="${HADOOP_OPTS} ${YARN_CLIENT_OPTS}"
  210. ;;
  211. *)
  212. CLASS="${COMMAND}"
  213. if ! hadoop_validate_classname "${CLASS}"; then
  214. hadoop_exit_with_usage 1
  215. fi
  216. ;;
  217. esac
  218. hadoop_verify_user "${COMMAND}"
  219. if [[ ${HADOOP_SLAVE_MODE} = true ]]; then
  220. hadoop_common_slave_mode_execute "${HADOOP_YARN_HOME}/bin/yarn" "${HADOOP_USER_PARAMS[@]}"
  221. exit $?
  222. fi
  223. daemon_outfile="${HADOOP_LOG_DIR}/hadoop-${HADOOP_IDENT_STRING}-${COMMAND}-${HOSTNAME}.out"
  224. daemon_pidfile="${HADOOP_PID_DIR}/hadoop-${HADOOP_IDENT_STRING}-${COMMAND}.pid"
  225. if [[ "${HADOOP_DAEMON_MODE}" != "default" ]]; then
  226. # shellcheck disable=SC2034
  227. HADOOP_ROOT_LOGGER="${HADOOP_DAEMON_ROOT_LOGGER}"
  228. HADOOP_LOGFILE="hadoop-${HADOOP_IDENT_STRING}-${COMMAND}-${HOSTNAME}.log"
  229. fi
  230. hadoop_finalize
  231. if [[ -n "${supportdaemonization}" ]]; then
  232. if [[ -n "${secure_service}" ]]; then
  233. hadoop_secure_daemon_handler "${HADOOP_DAEMON_MODE}" "${COMMAND}" \
  234. "${CLASS}" "${daemon_pidfile}" "${daemon_outfile}" \
  235. "${priv_pidfile}" "${priv_outfile}" "${priv_errfile}" "$@"
  236. else
  237. hadoop_daemon_handler "${HADOOP_DAEMON_MODE}" "${COMMAND}" "${CLASS}" \
  238. "${daemon_pidfile}" "${daemon_outfile}" "$@"
  239. fi
  240. exit $?
  241. else
  242. hadoop_java_exec "${COMMAND}" "${CLASS}" "$@"
  243. fi