为了账号安全,请及时绑定邮箱和手机立即绑定

Spring - Spark:jar/依赖项之间的冲突

Spring - Spark:jar/依赖项之间的冲突

哈士奇WWW 2023-08-09 15:50:53
我有一个 Spring Web 应用程序(内置于 Maven),用它连接到我的 Spark 集群(4 个工作节点和 1 个主节点)和我的 cassandra 集群(4 个节点)。应用程序启动,工作线程与主节点通信,并且 cassandra 集群也在运行。但是,当我通过网络应用程序的界面进行 PCA(spark mllib)或任何其他计算(聚类、pearson、spearman)时,出现以下错误:java.lang.ClassCastException:无法将 scala.collection.immutable.List$SerializationProxy 的实例分配给 scala.collection.Seq 类型的字段 org.apache.spark.rdd.RDD.org$apache$spark$rdd$RDD$$dependencies_在 org.apache.spark.rdd.MapPartitionsRDD 的实例中这个错误肯定是因为 spring-boot-maven-plugin 和 apache Spark 之间的 Jars 冲突。
查看完整描述

1 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

解决了!我只需要更改插件即可。可能是jar包之间有冲突。


这就是我所拥有的:


            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

                <version>2.0.9.RELEASE</version>

                <executions>

                <execution>

                    <goals>

                        <goal>repackage</goal>

                    </goals>

                </execution>

            </executions>

                <configuration>

                    <requiresUnpack>

                        <dependency>

                            <groupId>org.apache.spark</groupId>

                            <artifactId>spark-core_2.11</artifactId>

                        </dependency>

                        <dependency>

                            <groupId>org.apache.spark</groupId>

                            <artifactId>spark-streaming_2.11</artifactId>

                        </dependency>


                    </requiresUnpack>

                </configuration>

            </plugin>

我将其替换为:


<plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-compiler-plugin</artifactId>

        <version>3.8.0</version>

        <configuration>

            <source>1.8</source>

            <target>1.8</target>

        </configuration>

    </plugin>


<plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-shade-plugin</artifactId>

        <version>2.4.1</version>

        <dependencies>

            <dependency>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

                <version>2.0.9.RELEASE</version>

            </dependency>

        </dependencies>

        <configuration>

            <keepDependenciesWithProvidedScope>true</keepDependenciesWithProvidedScope>

            <createDependencyReducedPom>true</createDependencyReducedPom>

            <filters>

                <filter>

                    <artifact>*:*</artifact>

                    <excludes>

                        <exclude>META-INF/*.SF</exclude>

                        <exclude>META-INF/*.DSA</exclude>

                        <exclude>META-INF/*.RSA</exclude>

                    </excludes>

                </filter>

            </filters>

        </configuration>

        <executions>

            <execution>

                <phase>package</phase>

                <goals>

                    <goal>shade</goal>

                </goals>

                <configuration>

                    <transformers>

                        <transformer

                            implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">

                            <resource>META-INF/spring.handlers</resource>

                        </transformer>

                        <transformer

                            implementation="org.springframework.boot.maven.PropertiesMergingResourceTransformer">

                            <resource>META-INF/spring.factories</resource>

                        </transformer>

                        <transformer

                            implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">

                            <resource>META-INF/spring.schemas</resource>

                        </transformer>

                        <transformer

                            implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />

                        <transformer

                            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">

                            <mainClass>com.example.app.Mtbapp1</mainClass>

                        </transformer>

                    </transformers>

                </configuration>

            </execution>

        </executions>

    </plugin>



查看完整回答
反对 回复 2023-08-09
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信