Spark 读取ES采坑系列

目录

一、使用的插件

二、ES集群和Elasticsearch-hadoop版本问题

[三、Elasticsearch-hadoop 和Scala版本以及Spark版本(版本不匹配会有各种异常信息](#三、Elasticsearch-hadoop 和Scala版本以及Spark版本(版本不匹配会有各种异常信息)


一、使用的插件

复制代码
<dependency>
  <groupId>org.elasticsearch</groupId>
  <artifactId>elasticsearch-hadoop</artifactId>
  <version>xxx</version>
</dependency>

二、ES集群和Elasticsearch-hadoop版本问题

运行异常信息:

Cannot detect ES version - typically this happens if the network/Elasticsearch cluster is not accessible or when targeting a WAN/Cloud instance without the proper setting 'es.nodes.wan.only'

Invalid major version [5.6.3]. Version is lower than minimum required version [6.x].

原因:7.14.0版本以及以上要求ES集群的版本是6.X

解决方法:升级ES集群或者降低插件版本

三、Elasticsearch-hadoop 和Scala版本以及Spark版本(版本不匹配会有各种异常信息)

各种错误:

java.lang.NoSuchMethodError:scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps;

Caused by: java.lang.ClassNotFoundException: scala.collection.TraversableOnce$class

java.lang.NoClassDefFoundError: org/apache/spark/Partition$class

以上这些都是版本不一致导致的

解决办法

Elasticsearch-hadoop 的6.x~8.x 的Spark版本都是2.11的,所以如果你的Spark的jar包用的是2.12得改成2.11 并且scala的版本也得保持在2.11版本,比如spark-core_2.12 得改成spark-core_2.11。

还得注意一点:如果你的代码不是本地打包的话,还得注意一下打包环境的Spark版本版本,也得是3.0以下才行,不然还是会有问题。具体可以看版本对应关系

Spark和Scala个版本对应关系 具体可以看这里

相关推荐
python算法(魔法师版)1 小时前
云计算,大数据,人工智能
大数据·人工智能·云计算
文火冰糖的硅基工坊3 小时前
[创业之路-376]:企业战略管理案例分析-战略制定/设计-市场洞察“五看”:看宏观之当前的社会发展趋势与战略应对
大数据·人工智能·架构·模式·跨学科融合
MZWeiei3 小时前
区分:union(),coalesce () 和 repartition ()
大数据·分布式·spark·scala
risc1234563 小时前
【Elasticsearch】给所索引创建多个别名
elasticsearch
时序数据说3 小时前
时序数据库IoTDB的分片与负载均衡策略深入解析
大数据·数据库·开源·负载均衡·时序数据库·iotdb
北漂老男孩4 小时前
Scala与Spark:原理、实践与技术全景详解
大数据·开发语言·spark·scala·学习方法
workflower4 小时前
数据仓库,扫描量
大数据·人工智能·分布式·服务发现·软件工程·需求分析·软件需求
MZWeiei4 小时前
Spark on YARN 的运行架构总览
大数据·架构·spark
数据要素X4 小时前
【数据架构07】数据智能架构篇
大数据·数据库·数据仓库·人工智能·架构
敖云岚4 小时前
【Hadoop】大数据技术之 MapReduce
大数据·hadoop·mapreduce