-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Upgrade hive-apache to new version 3.0.0-6 #16545
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
|
To solve the test error below, we need to make several other changes in Hive and presto-hive-apache repro. java.lang.NoClassDefFoundError: com/facebook/presto/hive/$internal/org/codehaus/jackson/JsonNode |
|
Thank you! Looks like this one skipped quite a few test, I might hesitate to merge it. Not sure the impact on FB side. btw, could you please update the release note section in this PR? Thanks! |
|
Thanks @beinan for having a look! Yeah, this PR disabled quite a few tests. I am not sure if that is acceptable. The root cause is the new version of Avro changed the signature of Avro Schema(not backward compatible), and Hive has a hard dependency on the old signature. A fix in Hive is needed and that is done in Hive 2.x.x but not Hive 3.x.x, but our Hive-apache repo is using Hive 3.x.x. So there are 3 solutions now. 1) Push Hive community to port the fix from 2.x.x to 3.x.x and have a new release. 2) Revert #15805 to let Presto have its own Parquet upgrading path independent of the hive-apache repo. 3) Disable tests(not sure if real user scenarios also having issues). #1 seems a better solution but it seems the Hive community has no interest, for now, to help on releasing Hive 3.x.x. I started an email thread for asking Hive community but not response. |
Thanks a lot for these solutions! |
|
@beinan The change I made in pesto-hive-apache helped JsonNode no class finding error. Now the failing tests are failing with the following stack. So I am not totally getting your point. Can you explain? |
Sorry for my last misleading comment. |
|
@beinan Thanks for the explanation! The change is inside the Hive repo for the file TypeInfoToSchema.java (you can refer above call stack). If we want to shift the change to presto-hive-apache, we would need to copy all the code from hive.serde or at least hive.serde2.avro, right? Or do you suggest we can shade Hive 2.x.x and in HiveUtil.java we only call the shaded one? BTW, if you have some ideas to implement it, feel free to take them over. I saw you have another PR for the same upgrading too. |
|
The way I can think of is to shade the Hive jar. 1) Create a new project which references hive-2.3.8 and shade it 2) Include this project in presto-hive-apache 3) Change presto to reference the shaded class |
|
|
Did you find something @beinan? |
Do you have updates @beinan? |
Hi @shangxinli , sorry for my delay, I post a PR for this issue prestodb/presto-hive-apache#51 |
dd39dc6 to
ea882f8
Compare
fa9c7bc to
d850c96
Compare
|
I'll take a look at this soon and try deploying the whole thing. |
|
I deployed this to a cluster and ran 20k test queries. There was one failure that I haven't resolved yet, but I am guessing it was transient and specific to that query and am retesting it now. |
Thank you @aweisberg ! any updates? looks like the ci is still failing. |
|
There is something wrong with snapshots. I can upload them and even see them in I also get the error When I try to look at component info in the Nexus web UI. How snapshots are deployed is defined in airbase and it looks correct. The build tries to fetch from that location |
|
I think it's working now. I had to deploy a few times to get the timestamps to match. |
|
Awesome!!! @aweisberg Thank you! Hello @shangxinli, looks like all good except the iceberg connector one, I will take a look soon. |
@shangxili I'm not sure the iceberg test is just flaky or not, could you rebase the master and push again? Thanks! |

Test plan - (Please fill in how you tested your changes)
Please make sure your submission complies with our Development, Formatting, and Commit Message guidelines. Don't forget to follow our attribution guidelines for any code copied from other projects.
Fill in the release notes towards the bottom of the PR description.
See Release Notes Guidelines for details.