Mike Kaplinskiy created BEAM-5682:
-------------------------------------
Summary: Reshuffle causes brittle pipelines on Spark runner
Key: BEAM-5682
URL: https://issues.apache.org/jira/browse/BEAM-5682
Project: Beam
Issue Type: Bug
Components: runner-spark
Reporter: Mike Kaplinskiy
Assignee: Amit Sela
The latest Spark releases have a bug which makes calls to {{repartition}}
non-retriable (https://issues.apache.org/jira/browse/SPARK-25341) as a fix to
https://issues.apache.org/jira/browse/SPARK-23243. Beam uses repartition as the
implementation of {{Reshuffle}}. This makes beam-based spark pipelines not
resilient when using {{Reshuffle}} - a single executor failure kills the entire
pipeline.
The fix that I have locally is just to remove the special-casing of
{{Reshuffle}} in the spark runner
(https://github.com/apache/beam/blob/279a05604b83a54e8e5a79e13d8761f94841f326/runners/spark/src/main/java/org/apache/beam/runners/spark/translation/TransformTranslator.java#L579).
The reshuffle default expansion seems to do a fine job in reshuffling & the
pipeline becomes resilient to executor failures.
I'm not entirely sure if this is a beam bug or not, but I figure it's worth
making others aware of the current behavior.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)