[
https://issues.apache.org/jira/browse/HIVE-24734?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17282660#comment-17282660
]
Zoltan Matyus commented on HIVE-24734:
--------------------------------------
[~abstractdog]: could you comment on this? This is probably an edge case, but I
see no harm in making the change...
> Sanity check in HiveSplitGenerator available slot calculation
> -------------------------------------------------------------
>
> Key: HIVE-24734
> URL: https://issues.apache.org/jira/browse/HIVE-24734
> Project: Hive
> Issue Type: Bug
> Components: Tez
> Affects Versions: 4.0.0
> Reporter: Zoltan Matyus
> Priority: Minor
>
> HiveSplitGenerator calculates the number of available slots from available
> memory like this:
> {code:java}
> if (getContext() != null) {
> totalResource = getContext().getTotalAvailableResource().getMemory();
> taskResource = getContext().getVertexTaskResource().getMemory();
> availableSlots = totalResource / taskResource;
> }
> {code}
> I had a scenario where the total memory was calculated correctly, but the
> task memory returned -1. This led to error like these:
> {noformat}
> tez.HiveSplitGenerator: Number of input splits: 1. -3641 available slots, 1.7
> waves. Input format is: org.apache.hadoop.hive.ql.io.HiveInputFormat
> Estimated number of tasks: -6189 for bucket 1
> java.lang.IllegalArgumentException: Illegal Capacity: -6189
> {noformat}
> Admittedly, this happened during development, and hopefully will not occur on
> a properly configured cluster. (Although I'm not sure what the issue was on
> my setup, possibly XMX set higher than physical memory.)
> In any case, it feels like setting availableSlots < 1 will never lead to
> desired behavior, so in such cases we could emit a warning and correct the
> value to 1.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)