在hadoop作业中调用solr cloud索引时出错

egmofgnx  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(321)

我的目标是运行一个弹性map reduce作业,在map阶段查询solr索引并将结果写入s3。在hadoop作业中构建solr索引(即写入solr索引)时,solr和hadoop配合得很好。当我运行作业来查询solr索引时,我在尝试启动solr客户机时遇到一个错误。我怀疑hadoop和solr之间存在依赖性问题,我记得它们都使用不同版本的http客户机,错误是一个找不到方法的问题。这是堆栈跟踪

2013-07-24 03:17:47,082 FATAL org.apache.hadoop.mapred.Child (main): Error running child : java.lang.NoSuchMethodError: org.apache.http.impl.conn.SchemeRegistryFactory.createSystemDefault()Lorg/apache/http/conn/scheme/SchemeRegistry;
at org.apache.http.impl.client.SystemDefaultHttpClient.createClientConnectionManager(SystemDefaultHttpClient.java:118)
at org.apache.http.impl.client.AbstractHttpClient.getConnectionManager(AbstractHttpClient.java:445)
at org.apache.solr.client.solrj.impl.HttpClientUtil.setMaxConnections(HttpClientUtil.java:179)
at org.apache.solr.client.solrj.impl.HttpClientConfigurer.configure(HttpClientConfigurer.java:33)
at org.apache.solr.client.solrj.impl.HttpClientUtil.configureClient(HttpClientUtil.java:115)
at org.apache.solr.client.solrj.impl.HttpClientUtil.createClient(HttpClientUtil.java:105)
at org.apache.solr.client.solrj.impl.HttpSolrServer.<init>(HttpSolrServer.java:154)
at org.apache.solr.client.solrj.impl.HttpSolrServer.<init>(HttpSolrServer.java:127)
m1m5dgzv

m1m5dgzv1#

加上这个选项就成功了
--args-s,mapreduce.user.classpath.first=true
使用用户定义的类路径解决了hadoop和solrjar之间的依赖性问题

相关问题