栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

httpclient版本和Apache Spark之间的冲突

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

httpclient版本和Apache Spark之间的冲突

如您的帖子所述,Spark正在加载的旧版本

httpclient
。解决方案是使用Maven的
relocation
工具来生成一个简洁的无冲突项目。

这是一个如何在

pom.xml
文件中使用它的示例:

<project>  <!-- Your project definition here, with the groupId, artifactId, and it's dependencies -->   <build>    <plugins>      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-shade-plugin</artifactId>        <version>2.4.3</version>        <executions>          <execution> <phase>package</phase> <goals>   <goal>shade</goal> </goals> <configuration>   <relocations>     <relocation>       <pattern>org.apache.http.client</pattern>       <shadedPattern>shaded.org.apache.http.client</shadedPattern>     </relocation>   </relocations> </configuration>          </execution>        </executions>      </plugin>    </plugins>  </build></project>

这会将所有文件从

org.apache.http.client
移到
shaded.org.apache.http.client
,从而解决了冲突。


原始帖子:

如果这仅仅是传递依赖关系的问题,则可以将其添加到

spark-core
依赖关系中以排除Spark使用的HttpClient:

<dependency>    <groupId>org.apache.spark</groupId>    <artifactId>spark-core_2.10</artifactId>    <version>1.2.2</version>    <scope>provided</scope>    <exclusions>        <exclusion> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId>        </exclusion>    </exclusions></dependency>

我还在您的依赖项中添加了

scope
as
provided
,因为它将由您的集群提供。

但是,这可能与Spark的内部行为混为一谈。如果执行此操作后仍然出现错误,则可以尝试使用Maven的

relocation
工具,该工具应生成一个整洁的,无冲突的项目。

关于您不能升级Spark版本的事实,您是否使用了mvnrepository中的此依赖项声明?

Spark是向后兼容的,因此在具有更高版本的集群上部署您的作业应该没有任何问题。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/470215.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号