Scala simple esRDD(Spark中使用的elasticsearch hadoop连接器)引发异常
我正在本地主机上测试ElasticSearch和Spark集成(使用ElasticSearch hadoop连接器),使用ElasticSearch中加载的一些测试数据。调用交互式shell:Scala simple esRDD(Spark中使用的elasticsearch hadoop连接器)引发异常,scala,
elasticsearch,apache-spark,Scala,
elasticsearch,Apache Spark,我正在本地主机上测试ElasticSearch和Spark集成(使用ElasticSearch hadoop连接器),使用ElasticSearch中加载的一些测试数据。调用交互式shell: ] $SPARK_HOME/bin/spark-shell --master local[4] --jars ~/spark/jars/elasticsearch-hadoop-5.2.0.jar --conf spark.es.nodes="localhost" spark.es.port="9200"
] $SPARK_HOME/bin/spark-shell --master local[4] --jars ~/spark/jars/elasticsearch-hadoop-5.2.0.jar --conf spark.es.nodes="localhost" spark.es.port="9200" spark.es.resource="myindex/mytype"
scala> import org.elasticsearch.spark._
scala> val my_rdd = sc.esRDD("myindex/mytype")
my_rdd: org.apache.spark.rdd.RDD[(String, scala.collection.Map[String,AnyRef])] = ScalaEsRDD[0] at RDD at AbstractEsRDD.scala:34
但以下操作会引发异常并使Spark退出:
scala> my_rdd.take(3).foreach(println)
17/02/02 14:08:18 ERROR executor.Executor: Exception in task 0.0 in stage 0.0 (TID 0)
java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class
at org.elasticsearch.spark.rdd.AbstractEsRDDIterator.<init>(AbstractEsRDDIterator.scala:28)
at org.elasticsearch.spark.rdd.ScalaEsRDDIterator.<init>(ScalaEsRDD.scala:43)
at org.elasticsearch.spark.rdd.ScalaEsRDD.compute(ScalaEsRDD.scala:39)
...
...
Driver stacktrace:))
]
scala>my_rdd.take(3.foreach)(println)
17/02/02 14:08:18错误执行器。执行器:任务0.0在阶段0.0(TID 0)中出现异常
java.lang.NoClassDefFoundError:scala/collection/GenTraversableOnce$class
请访问org.elasticsearch.spark.rdd.AbstractESRDiterator。(AbstractESRDiterator.scala:28)
在org.elasticsearch.spark.rdd.scalaesrditerator上(ScalaEsRDD.scala:43)
在org.elasticsearch.spark.rdd.ScalaEsRDD.compute上(ScalaEsRDD.scala:39)
...
...
驱动程序堆栈跟踪:)
]
版本:
ES:2.4.2
火花:2.0.1
elasticsearch hadoop:5.2.0
这可能是版本之间的冲突吗?有没有办法在没有elasticsearch hadoop连接器的情况下测试ES连接?
任何暗示都感谢 从Spark 2.0开始,Spark默认使用Scala 2.11构建。所以 您需要下载基于Scala 2.11构建的elastic search spark connector for 2.0
你可以从下载 您提供的链接涉及es hadoop 5.1.2。你是说我使用的版本(5.2.0)与spark 2.0.1不兼容吗?它不是es hadoop,而是es spark。下载该文件,您将了解其中的差异!对不起,我现在不在座位上。es spark和es hadoop是否提供相同的功能?它们是互补产品还是并行产品?es hadoop是所有大数据技术的组合连接器,如hadoop、Spark、Storm、Pig。。例如,es spark是es hadoop的子项目,它只支持spark。因此,也许es hadoop对于我的需求来说太大了,但我认为它应该可以工作,我错了吗?