【发布时间】:2017-02-03 04:39:56
【问题描述】:
我正在本地主机上测试 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.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:))
]
版本: ES:2.4.2 火花:2.0.1 elasticsearch-hadoop:5.2.0
会不会是版本之间的冲突?有没有办法在没有 elasticsearch-hadoop 连接器的情况下测试 ES 连接? 任何提示表示赞赏!
【问题讨论】:
标签: scala elasticsearch apache-spark