[ 
https://issues.apache.org/jira/browse/HADOOP-153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12615996#action_12615996
 ] 

Sharad Agarwal commented on HADOOP-153:
---------------------------------------

The basic skip functionality including streaming/pipes is working in the last 
submitted patch. 
For the remaining items, had an offline discussion with Devaraj:
1.  Writing the skipped records: Saving the offsets seems to be non-trivial and 
it will make sense only for FileSplits and map tasks. So we are thinking of the 
strategy to write the skipped records during Task execution itself.
Task would write the skipped records locally to the disk while it executes. If 
the task attempt is last, it will flush the skipped records to the DFS, after 
it pases thru all the seen bad ranges.  One drawback is that if there is a new 
bad range in the last attempt and task fails, the records for the range in 
which last attempt has failed, are not written. However, user can increase the 
no of attempts and can get to this bad range.
2.  When this special (skipping) mode kicks off (after the 2nd attempt by 
default), disable the task speculation, as in this special mode it is already 
expected to run slower than normal.
3.  Define a user configurable no MAX_SKIPPED_RECORDS-> acceptable skipped 
records in the neighborhood of a bad record. By default this no would be 
Long.MAX_VALUE. If skipped range is  greater than MAX_SKIPPED_RECORDS, the task 
will try to narrow down the skipped range by doing a binary search during task 
re-executions till MAX_SKIPPED_RECORDS threshold is met or all task attempts 
are exhausted.

thoughts/suggestions ?

> skip records that throw exceptions
> ----------------------------------
>
>                 Key: HADOOP-153
>                 URL: https://issues.apache.org/jira/browse/HADOOP-153
>             Project: Hadoop Core
>          Issue Type: New Feature
>          Components: mapred
>    Affects Versions: 0.2.0
>            Reporter: Doug Cutting
>            Assignee: Sharad Agarwal
>         Attachments: 153_1.patch, 153_2.patch, skipRecords_wip1.patch
>
>
> MapReduce should skip records that throw exceptions.
> If the exception is thrown under RecordReader.next() then RecordReader 
> implementations should automatically skip to the start of a subsequent record.
> Exceptions in map and reduce implementations can simply be logged, unless 
> they happen under RecordWriter.write().  Cancelling partial output could be 
> hard.  So such output errors will still result in task failure.
> This behaviour should be optional, but enabled by default.  A count of errors 
> per task and job should be maintained and displayed in the web ui.  Perhaps 
> if some percentage of records (>50%?) result in exceptions then the task 
> should fail.  This would stop jobs early that are misconfigured or have buggy 
> code.
> Thoughts?

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

Reply via email to