[ 
https://issues.apache.org/jira/browse/HIVE-1139?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12876979#action_12876979
 ] 

Arvind Prabhakar commented on HIVE-1139:
----------------------------------------

I did some preliminary analysis for this JIRA and converted the 
{{HashMapWrapper}} to implement the {{java.util.Map}} interface. This required 
some changes all the way down to the underlying JDBM classes. 

However, this alone is not sufficient to plug it into the {{GroupByOperator}} 
implementation because the data stored in the {{HashMap}} is a mix of 
serializable Java objects as well as {{Writable}}s. Since {{Writable}}s cannot 
be directly serialized to Java, it follows that inorder to use this for fixing 
the memory problem we need _an external serialization_ mechanism that can 
handle arbitrary mixed type object graphs.

A trivial approach to address this would be to implement custom serialization 
using Java reflection but that would incur cost of excessive reflection and 
byte handling/marshaling.

If you have any other ideas regarding this, please add it to the comments of 
this issue for consideration.


> GroupByOperator sometimes throws OutOfMemory error when there are too many 
> distinct keys
> ----------------------------------------------------------------------------------------
>
>                 Key: HIVE-1139
>                 URL: https://issues.apache.org/jira/browse/HIVE-1139
>             Project: Hadoop Hive
>          Issue Type: Bug
>            Reporter: Ning Zhang
>            Assignee: Arvind Prabhakar
>
> When a partial aggregation performed on a mapper, a HashMap is created to 
> keep all distinct keys in main memory. This could leads to OOM exception when 
> there are too many distinct keys for a particular mapper. A workaround is to 
> set the map split size smaller so that each mapper takes less number of rows. 
> A better solution is to use the persistent HashMapWrapper (currently used in 
> CommonJoinOperator) to spill overflow rows to disk. 

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