-
Notifications
You must be signed in to change notification settings - Fork 28.7k
[SPARK-45593][BUILD] Building a runnable distribution from master code running spark-sql raise error #43436
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-45593][BUILD] Building a runnable distribution from master code running spark-sql raise error #43436
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -47,6 +47,11 @@ | |
<groupId>com.google.protobuf</groupId> | ||
<artifactId>protobuf-java</artifactId> | ||
</dependency> | ||
<!-- | ||
SPARK-45593: spark connect relies on a specific version of Guava, We perform shading | ||
of the Guava library within the connect-common module to ensure both connect-server and | ||
connect-client modules maintain consistent and accurate Guava dependencies. | ||
--> | ||
<dependency> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Spark connect requires a higher version of guava, so we can't remove this dependency. We should reconfigure the maven-shade-plugin in connect-common to exclude the packaging of this Guava. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Both connect-server and connect-client have their own independent guava dependencies : ) I think we should use connect-common shade guava, connect-client and connect-server shade connect-common to make connect-server and connect-client use the same guava dependency. In addition, because connect-common is included in the connect-server shade, the runnable distribution can also exclude connect-common. Do you like this current commit? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I tested it as #43195 (comment) description and it worked as expected. |
||
<groupId>com.google.guava</groupId> | ||
<artifactId>guava</artifactId> | ||
|
@@ -145,6 +150,35 @@ | |
</execution> | ||
</executions> | ||
</plugin> | ||
<plugin> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why do we need to shade common? For the off-chance someone takes a direct dependency on it? |
||
<groupId>org.apache.maven.plugins</groupId> | ||
<artifactId>maven-shade-plugin</artifactId> | ||
<configuration> | ||
<shadedArtifactAttached>false</shadedArtifactAttached> | ||
<artifactSet> | ||
<includes> | ||
<include>org.spark-project.spark:unused</include> | ||
<include>com.google.guava:guava</include> | ||
<include>com.google.guava:failureaccess</include> | ||
<include>org.apache.tomcat:annotations-api</include> | ||
</includes> | ||
</artifactSet> | ||
<relocations> | ||
<relocation> | ||
<pattern>com.google.common</pattern> | ||
<shadedPattern>${spark.shade.packageName}.connect.guava</shadedPattern> | ||
</relocation> | ||
</relocations> | ||
</configuration> | ||
<executions> | ||
<execution> | ||
<phase>package</phase> | ||
<goals> | ||
<goal>shade</goal> | ||
</goals> | ||
</execution> | ||
</executions> | ||
</plugin> | ||
</plugins> | ||
</build> | ||
<profiles> | ||
|
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 this change?
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.
Runnable distribution tar already contains connect-server and connect-server shade the connect-common, so runnable distribution tar does not need to contain connect-common anymore.
spark/connector/connect/server/pom.xml
Line 306 in 8cdcfd2