[
https://issues.apache.org/jira/browse/SPARK-9599?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14653746#comment-14653746
]
Zoltán Zvara commented on SPARK-9599:
-
What I can think of is a new, guided partitioning in case when an in-progress
shuffle write indicates that a few buckets will raise on OOM error with high
probability, or will result in a very slow execution in case the user-operator
on grouped keys is expensive. In other words, you might not get an OOM, but a
few very slow tasks.
My first idea is to track the distribution of keys while shuffle-write is in
progress. When we identify that with high probability there will be an OOM or a
very slow execution, just use the currently captured key-distribution to
construct a new partitioner that would partition evenly.
Dynamic partitioning based on key-distribution
--
Key: SPARK-9599
URL: https://issues.apache.org/jira/browse/SPARK-9599
Project: Spark
Issue Type: Improvement
Components: Shuffle, Spark Core
Affects Versions: 1.4.1
Reporter: Zoltán Zvara
When - for example - using {{groupByKey}} operator with default
{{HashPartitioner}}, there might be a case when heavy keys get partitioned
into the same bucket, later raising an OOM error at the result partition. A
domain-based partitioner might not be able to help, when the outstanding
key-distribution changes from time to time (for example while dealing with
data streams).
Spark should identify these situations and change the partitioning
accordingly when a partitioning would raise an OOM later.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
-
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org