-
Notifications
You must be signed in to change notification settings - Fork 4.8k
HIVE-23980: Shade Guava from hive-exec in Hive 2.3 #1356
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
Conversation
cc @sunchao |
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.
LGTM
@sunchao Do you know how to trigger the tests? |
@sunchao Thanks for merging it in branch-2. Does this also need to be merged? Or just close it? |
@viirya sorry for the delay - I've cherry-picked the change to branch-2.3 as well so you can just close this. |
Ok, thanks @sunchao |
569a4a1
to
6e4077e
Compare
Thanks @sunchao for adding jenkins file to branch-2.3. Re-open this. |
6e4077e
to
996e4d3
Compare
Reverting the previous approval since it has some issue
@sunchao The CI test results look much better now. Seems to me the failed tests are not related to shading guava. |
Thanks @viirya . Yes agree they do not look like related. I re-triggered CI just to be sure. |
Internally we test this patch and pass all Spark tests. I think it gives us more confidence to have this. |
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.
Thanks @viirya ! the new PR looks almost good to me except one nit.
Also comparing to the original patch, we don't have changes to HiveRelDecorrelator
, HiveAggregate
and HiveSubQueryRemoveRule
. This is unnecessary because we've shaded Guava within hive-exec
? (some of the APIs like operandJ
do not exist in the Calcite version used by branch-2.3 also).
The change to The change from |
Yes, my main question is whether it is safe to skip the changes on |
Yeah, it should be fine. Calcite uses guava API so shading guava causes no method error if we don't include calcite in shaded jar of hive/ql. |
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.
Thanks again @viirya . This LGTM.
Thank you @sunchao. I think this is ready to go, or we need to wait for a couple days? |
Merged to branch-2.3 and branch-2. Thanks @viirya . |
Thank you @sunchao |
What changes were proposed in this pull request?
This PR proposes to shade Guava from hive-exec in Hive 2.3 branch.
Why are the changes needed?
When trying to upgrade Guava in Spark, found the following error. A Guava method became package-private since Guava version 20. So there is incompatibility with Guava versions > 19.0.
This is a problem for downstream clients. Hive project noticed that problem too in HIVE-22126, however that only targets 4.0.0. It'd be nicer if we can also shade Guava from current Hive versions, e.g. Hive 2.3 line.
Does this PR introduce any user-facing change?
Yes. Guava will be shaded from hive-exec.
How was this patch tested?
Built Hive locally and checked jar content.