PARQUET-2173. Fix parquet build against hadoop 3.3.3+ - #985
Conversation
|
i've also built against the next release of hadoop, and of 3.4.0-SNAPSHOT. the parquet build fails there as jackson 1 is purged from the hadoop classpath, breaking the japicmp plugin. |
| <exclusion> | ||
| <groupId>org.slf4j</groupId> | ||
| <artifactId>slf4j-log4j12</artifactId> | ||
| <artifactId>*</artifactId> |
There was a problem hiding this comment.
it means that
- classic log4j is excluded
- slf4j-reload4j is excluded
- when the hadoop move to log4j2 is finally shipped, its slf4j bindings will be excluded too.
exclusions 1 and 2 could be done explicitly, but #3 is unclear until something ships. (hadoop trunk/3.4 is on log4j2, but the move isn't complete)
1.Exclude reload4j dependencies from hadoop modules so avoiding parquet cli convergence issues. 2.Add reload4j as a dependency to reject in compile scope. 3.Expand slf4j artifact exclusion in hadoop-* dependencies These changes are compatible with hadoop < 3.3.3; they simply ensure that on later versions, the reload4j dependencies don't get picked up.
d33a983 to
9f31cb3
Compare
|
cc @ggershinsky @wgtmac let me know if you have concern to merge. |
Thanks for pinging me! I don't have any concern for now. |
|
be good to get this in. FWIW i've been trying to build lots of things with the current smoke-build of a hadoop 3.3.5 RC. There's some aspects of maven playing up and I can't get parquet to collect the JARs from the asf staging repo, even with a profile in ~/.m2/settings.xml for it. I will probably have to add an explicit profile for that in the parquet build. |
Same here |
|
any plans to merge now? |
|
It looks good to me but I don't have the privilege to merge. May I request your help? @ggershinsky @shangxinli @gszadovszky |
|
thanks; closed the jira |
Hadoop 3.3.3 moved to reload4j for logging to stop
shipping a version of log4j with known (albeit unused)
CVEs.
This bypasses the existing exclusion code used to
keep hadoop's SLF4J dependency off the classpaths,
and by adding a new jar, breaks parquet-cli build.
Make sure you have checked all steps below.
Jira
Tests
The testing is regression testing "does the build work?", "does a test run complete without SLF4J warnings of duplicates?". done manually with
-Dhadoop.version=3.3.4Commits
Documentation