Spark的guava jar包版本冲突导致获取Elasticsearch连接失败

Spark在本地运行与集群运行时出现Elasticsearch连接失败问题,原因是Spark默认加载的guava-14.0.1.jar与Elasticsearch所需的guava-18.0.jar版本冲突。解决办法包括在每个Spark节点上部署guava-18.0.jar,并在spark-submit时指定加载该版本的guava jar。通过设置额外的ClassPath和LibraryPath参数,成功避免了NoClassDefFoundError。建议使用独立的依赖包提交方式以优化jar大小。
摘要由CSDN通过智能技术生成

Spark集成Elasticsearch,在local下正常运行,提交到集群运行jar出现异常:

org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 3.0 failed 4 times, most recent failure: Lost task 0.3 in stage 3.0 (TID 10, 172.16.14.32): java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.threadpool.ThreadPool

 

 

 

经定位,发现是由于spark集群运行时默认加载$spark_home/jars下的guava-14.0.1.jar版本的包,而Elasticsearch使用的是guava-18.0.jar版本,提交到集群运行时,guava-14.0.1.jar版本覆盖掉了Elasticsearch中的guava-18.0.jar版本,造成java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.threadpool.ThreadPool 异常。

 

解决方式参考:https://blog.csdn.net/u010454030/article/details/70054822

博主所写的资料

 

1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值