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

Doug Cutting commented on MAPREDUCE-4827:
-----------------------------------------

Integer#hashCode() is documented to be the integer value.

http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#hashCode()

Similarly, the hashCode() implelementations for String, Double, Float, Long, 
etc. are specified and do not change from one JVM to another.

Also, I didn't veto this change.  I just observed that it was not 
back-compatible.  That should be taken into account if/when it is committed.
                
> Increase hash quality of HashPartitioner
> ----------------------------------------
>
>                 Key: MAPREDUCE-4827
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-4827
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>            Reporter: Radim Kolar
>         Attachments: betterhash1.txt
>
>
> hash partitioner is using object.hashCode() for splitting keys into 
> partitions. This results in bad distributions because hashCode() quality is 
> poor. 
> These hashCode() functions are sometimes written by hand (very poor quality) 
> and sometimes generated from by commons lang code (poor quality). Applying 
> some transformation on top of hashCode() provides better distribution.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to