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

Chris Douglas commented on HADOOP-2774:
---------------------------------------

bq. The two counters are for counting the number of records read and the number 
of records written, not for determining whether the records came from 
disk/memory.

I'm confused. The map needs to count spilled records as it writes to disk; 
that's straightforward. The reduce- since some of its fetched segments are 
written directly to disk- either needs a count from the map as in the original 
patch, or it should count records as it reads them from disk. Why does the 
merger need two counters, particularly since the caller is the only one that 
knows whether it's going to disk or to a reduce? When would the number of 
records read from its segments differ from the number of records it ultimately 
emits? Passing an optional object to the merge that gets pinged every time it 
emits a record is both straightforward as an API change and sufficient for this 
particular use case. One could probably add the counter to the Merger without 
changing IFile.Reader and get the same semantics. I like the symmetry of adding 
counters to both, but either way is fine.

> Add counters to show number of key/values that have been sorted and merged in 
> the maps and reduces
> --------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-2774
>                 URL: https://issues.apache.org/jira/browse/HADOOP-2774
>             Project: Hadoop Core
>          Issue Type: Bug
>            Reporter: Owen O'Malley
>            Assignee: Ravi Gummadi
>             Fix For: 0.20.0
>
>         Attachments: HADOOP-2774.patch, HADOOP-2774.patch
>
>
> For each *pass* of the sort and merge, I would like a count of the number of 
> records. So for example, if the map output 100 records and they were sorted 
> once, the counter would be 100. If it spilled twice and was merged together, 
> it would be 200. Clearly in a multi-level merge, it may not be a multiple of 
> the number of map output records. This would let the users easily see if they 
> have values like io.sort.mb or io.sort.factor set too low.

-- 
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