HIVE-24485: Make the slow-start behavior tunable - #4404
Conversation
| this.isAutoReduce = isAutoReduce; | ||
| this.inputSizePerReducer = bytesPerReducer; | ||
| this.minSrcFraction = minSrcFraction; | ||
| this.maxSrcFraction = maxSrcFraction; |
There was a problem hiding this comment.
I think the first commit is the simplest.
However, Gopal suggested I should move to the current style while the previous PR is open.
https://issues.apache.org/jira/browse/HIVE-24485?focusedCommentId=17278522&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17278522
I personally don't have very strong opinions about how to support the params.
There was a problem hiding this comment.
@okumin : thanks for working on this, I believe the latest patch with Gopal's suggestion looks good, and I feel we can support all (currently 5) properties like this:
https://github.com/apache/tez/blob/ccad71dabceb850b58ff38e77fd206e68f62ce4b/tez-runtime-library/src/main/java/org/apache/tez/dag/library/vertexmanager/ShuffleVertexManager.java#L71-L110
There was a problem hiding this comment.
@abstractdog Thanks for putting your opinion. Actually, all the other 3 params are already covered indirectly. The newly added 2 are only ones we can't control at all.
hive/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/DagUtils.java
Lines 1657 to 1669 in b55f9c5
tez.shuffle-vertex-manager.enable.auto-parallel: This is configured whenhive.tez.auto.reducer.parallelismis enabled and the reduce vertex can be parallelizedtez.shuffle-vertex-manager.desired-task-input-size: This is inherited fromhive.exec.reducers.bytes.per.reducertez.shuffle-vertex-manager.min-task-parallelism: This will be{estimated # of reducers} * hive.tez.min.partition.factor
If we support them, it means tez.shuffle-vertex-manager.* overwrites the 3 params. Is it preferable?
Another option is to introduce new params like hive.tez.auto.reducer.parallelism.min-src-fraction assuming tez.shuffle-vertex-manager.* is SPI-like params. It might be consistent with other params.
There was a problem hiding this comment.
thanks for the detailed explanation @okumin, I prefer not changing the existing behavior regarding the other properties
0cc7add to
b55f9c5
Compare
|
Kudos, SonarCloud Quality Gate passed! |
|
Thanks for reviewing this PR! |
…n reviewed by Laszlo Bodor)
…n reviewed by Laszlo Bodor)








What changes were proposed in this pull request?
Let Hive respect
tez.shuffle-vertex-manager.min-src-fractionandtez.shuffle-vertex-manager.max-src-fractionwhen auto reducer parallelism is enabled. Currently, we don't have any methods to configure the parameters.https://issues.apache.org/jira/browse/HIVE-24485
Why are the changes needed?
We sometimes want to tune the parameters so that Tez can finalize the number of reducers with a more accurate estimation. For example, in extreme cases where the previous stage is very skewed, we may want to configure both params at
1.0.Does this PR introduce any user-facing change?
The behavior will change if a user configures
tez.shuffle-vertex-manager.{min,max}-src-fraction.How was this patch tested?