hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gautam Kowshik (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HADOOP-1127) Speculative Execution and output of Reduce tasks
Date Tue, 24 Apr 2007 18:03:15 GMT

    [ https://issues.apache.org/jira/browse/HADOOP-1127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12491381
] 

Gautam Kowshik commented on HADOOP-1127:
----------------------------------------

+1 .. Sort500 ran successfully with speculative execution On.

> Speculative Execution and output of Reduce tasks
> ------------------------------------------------
>
>                 Key: HADOOP-1127
>                 URL: https://issues.apache.org/jira/browse/HADOOP-1127
>             Project: Hadoop
>          Issue Type: Improvement
>          Components: mapred
>    Affects Versions: 0.12.0
>            Reporter: Arun C Murthy
>         Assigned To: Arun C Murthy
>             Fix For: 0.13.0
>
>         Attachments: HADOOP-1127_200700424_10.patch, HADOOP-1127_20070328_1.patch, HADOOP-1127_20070331_2.patch,
HADOOP-1127_20070402_3.patch, HADOOP-1127_20070403_4.patch, HADOOP-1127_20070405_5.patch,
HADOOP-1127_20070409_6.patch, HADOOP-1127_20070419_7.patch, HADOOP-1127_20070420_8.patch,
HADOOP-1127_20070423_9.patch
>
>
> We've recently seen instances where jobs run with 'speculative execution' tend to be
quite unstable and fail with *AlreadyBeingCreatedException* noticed at the NameNode. Also
potentially we could have hairy situations where a failed Reduce tasks's output could clash
with a successful task's (same tip) output.
> As it exists, speculative execution relies on the PhasedFileSystem which creates a temp
output file and then on task-completion that file is 'moved' to its final position via a call
to PhasedFileSystem.commit from ReduceTask.run(). This has lead to issues such as the above.
> Proposal:
> Basically the idea is to due this uniformly for all Reduce tasks i.e. all reducers create
temp files and then have a serialized 'commit' done by the JobTracker which moves the temp
file to it's final position. 
> We create the temp file in the job's output directory itself:
> <output_dir>/_<taskid> (emphasis on the leading '_')
> On task completion we'll add that temp file's path to the TaskStatus and then the JobTracker
moves that file to it's final position.
> Thoughts?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message