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

Brahma Reddy Battula commented on MAPREDUCE-3384:
-------------------------------------------------

[~devaraj.k] thanks for review..
{quote}Can we also have key as part of the warning message?{quote}

Ok.we can have.

{quote}
I am thinking, if we have more number of values where overflow/underflow can 
happen, we would be filling with these logs. Can we limit having a some flag in 
the reduce method to log only once for overflow and underflow for each key? any 
thoughts?{quote}

I am thinking like following,, please let me know your opinion...

{code}
public void reduce(Key key, Iterable<IntWritable> values,
                     Context context) throws IOException, InterruptedException {
    int sum = 0;
    boolean isOverflow=false;
    boolean isUnderflow=false;
    for (IntWritable val : values) {
      int tempVal = val.get();
      int oldSum = sum;
      sum += tempVal;
      if ((!isOverflow && oldSum > 0 && tempVal > 0) && (oldSum > sum)) {
        LOG.warn("Arithmetic overflow occurs while reducing"+tempVal);
        isOverflow=True;
      }
      if ((!isUnderflow && oldSum < 0 && tempVal < 0) && (oldSum < sum)) {
        LOG.warn("Arithmetic underflow occurs while reducing"+tempVal);
        isUnderflow=True;
      }
    }
    result.set(sum);
    context.write(key, result);
  }
{code}

> Add warning message for underflow or overflow
> ---------------------------------------------
>
>                 Key: MAPREDUCE-3384
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-3384
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>            Reporter: JiangKai
>            Assignee: Brahma Reddy Battula
>         Attachments: MAPREDUCE-3384-002.patch, MAPREDUCE-3384-003.patch, 
> MAPREDUCE-3384.patch
>
>
> When we call the function reduce() of LongSumReducer,the result may overflow 
> or underflow.
> We should have a warning message to users if overflow/underflow occurs for 
> all these classes,
> {code:xml}
> /java/org/apache/hadoop/mapred/lib/LongSumReducer.java
>  .../apache/hadoop/mapreduce/lib/reduce/IntSumReducer.java
>  .../apache/hadoop/mapreduce/lib/reduce/LongSumReducer.java
>  .../test/java/org/apache/hadoop/fs/AccumulatingReducer.java
>  .../hadoop/mapred/nativetask/kvtest/HashSumReducer.java
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to