Spark应用程序中的elastic4s

时间:2016-09-13 17:32:47

标签: elastic4s

我一直在尝试在我的spark应用程序中使用elastic4s,但每次尝试将数据发送到我的elasticsearch节点时,我都会得到:

copy()

不确定我甚至可以开始调试此错误。代码很简单:

java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;
        at org.elasticsearch.threadpool.ThreadPool.<clinit>(ThreadPool.java:190)
        at org.elasticsearch.client.transport.TransportClient$Builder.build(TransportClient.java:131)
        at com.sksamuel.elastic4s.ElasticClient$.transport(ElasticClient.scala:111)
        at com.sksamuel.elastic4s.ElasticClient$.remote(ElasticClient.scala:92)

1 个答案:

答案 0 :(得分:0)

问题是Elasticsearch和Spark在他们的Netty版本(和其他依赖项)上发生冲突。这些版本不兼容,您可以在运行时获得这些类型的异常。

Elastic4s的5.3版开始,最好的办法是使用与Netty或Guava等无关的HttpClient