java.lang.NoSuchMethodError:org.apache.solr.client.solrj.impl.CloudSolrClient $ Builder.withHttpClient

问题描述 投票:0回答:2

我正在关注this示例,以便从Solr获取数据到我的Scala Spark程序。以下是我的代码:

val solrURL = "someurl"
val collectionName = "somecollection"

val solrRDD = new SelectSolrRDD(solrURL,collectionName,sc)

val solrQuery=new SolrQuery("somequery")
solrQuery.setTimeAllowed(0)

val solrDataRDD=solrRDD.query(solrQuery)

当我在本地Spark集群上运行此代码时,我在new selectSolrRDD行获得以下异常:

java.lang.NoSuchMethodError: org.apache.solr.client.solrj.impl.CloudSolrClient$Builder.withHttpClient(Lorg/apache/http/client/HttpClient;)Lorg/apache/solr/client/solrj/impl/SolrClientBuilder;

我在StackOverflow上查看了其他一些答案但没有任何效果。

apache-spark solr solrj
2个回答
0
投票

问题在于您的打包和部署(假设您正在使用maven,您的pom.xml)。问题是运行Spark应用程序时未加载Solr客户端库。您需要将应用程序和任何依赖项打包到“超级jar”中以便部署到群集。

看看spark-solr如何设置它。他们使用maven-shade-plugin来生成超级罐。


0
投票

我的集群中已经存在了一些火星溶剂,这些垃圾与我正在使用的罐子相冲突。删除这些罐子后,我的代码工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.