xkrogen commented on a change in pull request #29843:
URL: https://github.com/apache/spark/pull/29843#discussion_r509710072
##########
File path:
sql/hive/src/main/scala/org/apache/spark/sql/hive/client/IsolatedClientLoader.scala
##########
@@ -118,19 +118,32 @@ private[hive] object IsolatedClientLoader extends Logging
{
hadoopVersion: String,
ivyPath: Option[String],
remoteRepos: String): Seq[URL] = {
+ val hadoopJarNames = if (hadoopVersion.startsWith("3")) {
+ Seq(s"org.apache.hadoop:hadoop-client-api:$hadoopVersion",
+ s"org.apache.hadoop:hadoop-client-runtime:$hadoopVersion")
+ } else {
+ Seq(s"org.apache.hadoop:hadoop-client:$hadoopVersion")
+ }
val hiveArtifacts = version.extraDeps ++
Seq("hive-metastore", "hive-exec", "hive-common", "hive-serde")
.map(a => s"org.apache.hive:$a:${version.fullVersion}") ++
- Seq("com.google.guava:guava:14.0.1",
- s"org.apache.hadoop:hadoop-client:$hadoopVersion")
+ Seq("com.google.guava:guava:14.0.1") ++ hadoopJarNames
+
+ val extraExclusions = if (hadoopVersion.startsWith("3")) {
+ // this introduced from lower version of Hive could conflict with jars
in Hadoop 3.2+, so
+ // exclude here in favor of the ones in Hadoop 3.2+
+ Seq("org.apache.hadoop:hadoop-auth")
Review comment:
I thought that Ivy would do dependency conflict resolution to resolve
such issues? Do you actually get two versions of the same module (e.g.
`hadoop-common` 2.7 and 3.2) or mixed Hadoop modules (like `hadoop-common` 2.7
but `hadoop-auth` 3.2)? I was under the impression that the former should be
resolved automatically.
In any case -- this seems like a good opportunity to clean it up. If we
exclude everything _except_ `hadoop-client-api` and `hadoop-client-runtime`,
that should cover excluding all of Hive's JARs, right?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]