The MR AM always thinks that it is being killed by the RM when it gets a kill signal and it has not finished processing yet. In reality the RM kill signal is only sent when the client cannot communicate directly with the AM, which probably means that the AM is in a bad state already. The much more common case is that the node is marked as unhealthy or decomissioned.
I propose that in the short term the AM will only clean up if
- The process has been asked by the client to exit (kill)
- The process job has finished cleanly and is exiting already
- This is that last retry of the AM retries.
The downside here is that the .staging directory will be leaked and the job will not show up in the history server on an kill from the RM in some cases.
At least until the full set of AM cleanup issues can be addressed, probably as part of MAPREDUCE-4428