New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SPARK-12807] [YARN] Spark External Shuffle not working in Hadoop clusters with Jackson 2.2.3 #10780
[SPARK-12807] [YARN] Spark External Shuffle not working in Hadoop clusters with Jackson 2.2.3 #10780
Conversation
Updated patch which has shading of There's a test for this working; it uses the ant plugin to probe the JAR for .class files. It works, and I've verified that it stops working if you don't have the classes in. This validation runs in the This test does not (obviously) verify that this fixes the conflict between YARN NM and Shuffle. This is going to need external tests |
Test build #49508 has finished for PR 10780 at commit
|
Test build #49510 has finished for PR 10780 at commit
|
Jenkins, retest this please |
Test build #49522 has finished for PR 10780 at commit
|
The latest patch
When built with Maybe instead of |
Test build #49698 has finished for PR 10780 at commit
|
Test build #49736 has finished for PR 10780 at commit
|
98f18aa
to
0ae0955
Compare
Test build #50675 has finished for PR 10780 at commit
|
@steveloughran given the discussion on the bug, can you remove shading for anything but Jackson? In particular, shading the javax annotations is wrong because that would probably break tools that rely on them to do checks. |
Can do |
I've just pushed out a new version which leaves only jackson and guava as the relocations: the ones that are most trouble. I could turn off the guava relocate, though that introduces a risk of the shuffle failing if the hadoop bundled guava 11.x gets picked up first. The hadoop codebase is designed to work with later guavas, so can cope with the spark one being picked up. leveldb can be omitted with a Pleveldb-provided profile; this is disabled by default (i.e. leveldb is bundled) |
0ae0955
to
43d2b34
Compare
Test build #50815 has finished for PR 10780 at commit
|
<relocations> | ||
<relocation> | ||
<pattern>com.fasterxml.jackson</pattern> | ||
<shadedPattern>org.spark-project.com.fasterxml.jackson</shadedPattern> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not use the shade
property you created here too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
one is {{org/spark-project}}, the other {{org.spark-project}}; you'd have to do s/r renaming to automatically derive one from the other. With hindsight, it's a common enough use case we should have added it to Ant 15 years ago, but its too late now.
…verify shading is there. currently they fail
…eed to be asserting state of JAR
…unshaded artifacts
… the artifact. the build fails, as the verify stage is still probing for it
…ffle versions being in perfect sync, so duplication is harmless
43d2b34
to
947a798
Compare
Test build #50918 has finished for PR 10780 at commit
|
<relocation> | ||
<pattern>com.fasterxml.jackson</pattern> | ||
<shadedPattern>org.spark-project.com.fasterxml.jackson</shadedPattern> | ||
<includes> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
super nit: I wonder if this is needed; we have it for Jetty but not for Guava, and both end up being relocated the same way.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maven shading is a dark mystery to me. I don't understand what it does; I don't trust it. What you see there is cargo-cult cut and paste backed by a bit of ant to verify the final outcome of the C&P matches what I want.
LGTM. |
Merging this. |
…ters with Jackson 2.2.3 Patch to 1. Shade jackson 2.x in spark-yarn-shuffle JAR: core, databind, annotation 2. Use maven antrun to verify the JAR has the renamed classes Being Maven-based, I don't know if the verification phase kicks in on an SBT/jenkins build. It will on a `mvn install` Author: Steve Loughran <stevel@hortonworks.com> Closes #10780 from steveloughran/stevel/patches/SPARK-12807-master-shuffle. (cherry picked from commit 34d0b70) Signed-off-by: Marcelo Vanzin <vanzin@cloudera.com>
thanks! |
Patch to
Being Maven-based, I don't know if the verification phase kicks in on an SBT/jenkins build. It will on a
mvn install