[
https://issues.apache.org/jira/browse/MAPREDUCE-1484?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12840435#action_12840435
]
Luke Lu commented on MAPREDUCE-1484:
------------------------------------
There are a few approaches to this issue, which is mostly to preserve the task
ids in the original order of the input splits. We want avoid sorting the
splits, which could be up to a million for large scans, at JobTracker side,
since it would be done per job and JT is already overloaded in large clusters.
One approach is to sort at client side and introduce an additional id in the
input splits' meta info fields (new API only) to preserve the original order of
the splits. One issue came for this approach: do we want to validate the ids at
JT side? If so (seems prudent), the validation algorithm could be expensive as
well (check whether the ids are unique is at least O(N) time, not sure if we
can do O(1) space, O(N) space and time with a BitSet is the most
straightforward approach.)
Another approach is to punt the sorting altogether. Observing that most splits
are from file inputformats with most block sizes being the same default block
size except the last block, maybe we don't need to sort at all. There are
cases, where the block sizes are different within a job, but that's relatively
rare(?)
I prefer the later approach, as it's simpler and easier to implement (just
remove the sorting code.) It has a cleaner semantics as well, as split sizes
should be input to a scheduler that cares about it (in a two level scheduler
world, sorting at one of the job manager nodes is scalable as well.)
Thoughts?
> Framework should not sort the input splits
> ------------------------------------------
>
> Key: MAPREDUCE-1484
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-1484
> Project: Hadoop Map/Reduce
> Issue Type: Improvement
> Reporter: Owen O'Malley
>
> Currently the framework sorts the input splits by size before the job is
> submitted. This makes it very difficult to run map only jobs that transform
> the input because the assignment of input names to output names isn't
> obvious. We fixed this once in HADOOP-1440, but the fix was broken so it was
> rolled back.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.