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

Harsh J commented on MAPREDUCE-4507:
------------------------------------

The {{map()}} function is to be properly overriden when using the new API. 
Using @Override annotations on map() (and for that matter, reduce() too) will 
help you catch your mistake here.

As discussed on http://search-hadoop.com/m/hSxqz1vsQPc, this is a user-side 
mistake, but in no way a bug. See 
http://hadoop.apache.org/common/docs/current/api/org/apache/hadoop/mapreduce/Mapper.html#map(KEYIN,%20VALUEIN,%20org.apache.hadoop.mapreduce.Mapper.Context).

We can add a javadoc improvement (and a tutorial improvement) to state the 
right answer to avoiding this issue: Always use @Override annotations when 
overriding methods. (Any IDE today provides support for this).
                
> IdentityMapper is being triggered when the type of the Input Key at class 
> level and method level has a conflict
> ---------------------------------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-4507
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-4507
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: mrv1
>    Affects Versions: 1.0.3
>         Environment: linux ubuntu
>            Reporter: Bejoy KS
>
> If we use the default InputFormat (TextInputFormat) but specify the Key type 
> in mapper as IntWritable instead of Long Writable. The framework is supposed 
> throw a class cast exception.Such an exception is thrown only if the key 
> types at class level and method level are the same (IntWritable). But if we 
> provide the Input key type as IntWritable on the class level but LongWritable 
> on the method level (map method), instead of throwing a compile time error, 
> the code compliles fine . In addition to it on execution the framework 
> triggers Identity Mapper instead of the custom mapper provided with the 
> configuration. In this case the 'mapreduce.map.class' in job.xml shows mapper 
> as Custom Mapper itself , it should show IdentityMapper in cases where 
> IdentityMapper is triggered to avoid confusion and easy debugging.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to