diff --git a/hadoop-project/src/site/site.xml b/hadoop-project/src/site/site.xml index e1d4c92259..6a61a83e74 100644 --- a/hadoop-project/src/site/site.xml +++ b/hadoop-project/src/site/site.xml @@ -123,6 +123,7 @@ + diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index e4b116d12c..df7e3eaba1 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -195,6 +195,9 @@ Release 2.6.0 - UNRELEASED YARN-2647. Added a queue CLI for getting queue information. (Sunil Govind via vinodkv) + YARN-2632. Document NM Restart feature. (Junping Du and Vinod Kumar + Vavilapalli via jlowe) + IMPROVEMENTS YARN-2197. Add a link to YARN CHANGES.txt in the left side of doc diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/NodeManagerRestart.apt.vm b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/NodeManagerRestart.apt.vm new file mode 100644 index 0000000000..ba03f4e8f6 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/apt/NodeManagerRestart.apt.vm @@ -0,0 +1,86 @@ +~~ Licensed under the Apache License, Version 2.0 (the "License"); +~~ you may not use this file except in compliance with the License. +~~ You may obtain a copy of the License at +~~ +~~ http://www.apache.org/licenses/LICENSE-2.0 +~~ +~~ Unless required by applicable law or agreed to in writing, software +~~ distributed under the License is distributed on an "AS IS" BASIS, +~~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +~~ See the License for the specific language governing permissions and +~~ limitations under the License. See accompanying LICENSE file. + + --- + NodeManager Restart + --- + --- + ${maven.build.timestamp} + +NodeManager Restart + +* Introduction + + This document gives an overview of NodeManager (NM) restart, a feature that + enables the NodeManager to be restarted without losing + the active containers running on the node. At a high level, the NM stores any + necessary state to a local state-store as it processes container-management + requests. When the NM restarts, it recovers by first loading state for + various subsystems and then letting those subsystems perform recovery using + the loaded state. + +* Enabling NM Restart + + [[1]] To enable NM Restart functionality, set the following property in <> to true: + +*--------------------------------------+--------------------------------------+ +|| Property || Value | +*--------------------------------------+--------------------------------------+ +| <<>> | | +| | <<>>, (default value is set to false) | +*--------------------------------------+--------------------------------------+ + + [[2]] Configure a path to the local file-system directory where the + NodeManager can save its run state + +*--------------------------------------+--------------------------------------+ +|| Property || Description | +*--------------------------------------+--------------------------------------+ +| <<>> | | +| | The local filesystem directory in which the node manager will store state | +| | when recovery is enabled. | +| | The default value is set to | +| | <<<${hadoop.tmp.dir}/yarn-nm-recovery>>>. | +*--------------------------------------+--------------------------------------+ + + [[3]] Configure a valid RPC address for the NodeManager + +*--------------------------------------+--------------------------------------+ +|| Property || Description | +*--------------------------------------+--------------------------------------+ +| <<>> | | +| | Ephemeral ports (port 0, which is default) cannot be used for the | +| | NodeManager's RPC server specified via yarn.nodemanager.address as it can | +| | make NM use different ports before and after a restart. This will break any | +| | previously running clients that were communicating with the NM before | +| | restart. Explicitly setting yarn.nodemanager.address to an address with | +| | specific port number (for e.g 0.0.0.0:45454) is a precondition for enabling | +| | NM restart. | +*--------------------------------------+--------------------------------------+ + + [[4]] Auxiliary services + + NodeManagers in a YARN cluster can be configured to run auxiliary services. + For a completely functional NM restart, YARN relies on any auxiliary service + configured to also support recovery. This usually includes (1) avoiding usage + of ephemeral ports so that previously running clients (in this case, usually + containers) are not disrupted after restart and (2) having the auxiliary + service itself support recoverability by reloading any previous state when + NodeManager restarts and reinitializes the auxiliary service. + + A simple example for the above is the auxiliary service 'ShuffleHandler' for + MapReduce (MR). ShuffleHandler respects the above two requirements already, + so users/admins don't have do anything for it to support NM restart: (1) The + configuration property <> controls which port the + ShuffleHandler on a NodeManager host binds to, and it defaults to a + non-ephemeral port. (2) The ShuffleHandler service also already supports + recovery of previous state after NM restarts. \ No newline at end of file