[ 
https://issues.apache.org/jira/browse/MAPREDUCE-5841?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13977881#comment-13977881
 ] 

Sangjin Lee commented on MAPREDUCE-5841:
----------------------------------------

Updated the patch.

I added code that interrupts the task attempt for which a container clean-up is 
being requested via Future.cancel(). System.exit() was replaced with 
ExitUtil.terminate(). Also added a unit test.

I ran some -kill-task scenarios to confirm the patch works for them. For 
example, for a 2-mapper (no reducer) uber job, if I kill any of the tasks, it 
gets interrupted promptly (provided the task responds to interruption), a new 
attempt is scheduled, and the job completes successfully.

I also tried a 2-mapper, 1-reducer uber job. I killed a mapper task, and 
confirmed the running task is killed promptly. In this case the job eventually 
fails because the reducer attempt detects that not all the mappers ran 
successfully. I suspect this is somewhat of an expected behavior.

Regarding the aforementioned unit test timeouts, it turned out to be a fluke. 
It may have been the state my machine was in when I ran the test network-wise. 
I can no longer reproduce the timeouts under a stable condition.

> uber job doesn't terminate on getting mapred job kill
> -----------------------------------------------------
>
>                 Key: MAPREDUCE-5841
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-5841
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: mrv2
>    Affects Versions: 2.3.0
>            Reporter: Sangjin Lee
>            Assignee: Sangjin Lee
>         Attachments: mapreduce-5841.patch, mapreduce-5841.patch
>
>
> If you issue a "mapred job -kill" against a uberized job, the job (and the 
> yarn application) state transitions to KILLED, but the application master 
> process continues to run. The job actually runs to completion despite the 
> killed status.
> This can be easily reproduced by running a sleep job:
> {noformat}
> hadoop jar hadoop-mapreduce-client-jobclient-2.3.0-tests.jar sleep -m 1 -r 0 
> -mt 300000
> {noformat}
> Issue a kill with "mapred job -kill \[job-id\]". The UI will show the job 
> (app) is in the KILLED state. However, you can see the application master is 
> still running.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to