使用MapReduce创建SolrCloud索引时的异常记录

配置文件字段不符情况:

一开始,创建索引报错时,查看日志会发现,提示:“undefined field”这种情况是提交的SolrDocument里有的字段名在配置文件managed-schema中没有事先定义,所以会报这种错;

但是最近,在MapReduce运行时,出现如下错误:(ip地址用了“x”替代)

18/05/30 10:58:28 INFO mapreduce.Job: Task Id : attempt_1525877339245_0044_m_000001_0, Status : FAILED
Error: org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: 
Error from server at [图片]http://xx.xx.xx.xx:xxxx/solr/SEARCH_LHLEMR_v8: Connection reset	
        at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:577)
	at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:241)
	at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:230)
	at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:149)
	at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:106)
	at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:71)
	at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:85)
	at SolrIndexMapReduce.EmrIndexLHLSolrIndexMR$SolrIndexMapper.cleanup(EmrIndexLHLSolrIndexMR.java:234)
	at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:148)
	at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:793)
	at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
	at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:422)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1920)
	at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
request: [图片]http://xx.xx.xx.xx:xxxx/solr/SEARCH_LHLEMR_v8_shard2_replica1/update?update.distrib=TOLEADER&distrib.from=http%3A%2F%2Fxx.xx.xx.xx%3A8081%2Fsolr%2FSEARCH_LHLEMR_v8_shard1_replica1%2F&wt=javabin&version=2
	at org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrClient$Runner.sendUpdateStream(ConcurrentUpdateSolrClient.java:290)
	at org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrClient$Runner.run(ConcurrentUpdateSolrClient.java:161)
	at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:229)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:748)
通过一点点的排查发现是因为有一个字段用来判断使用,没有把他过滤掉,也把他添加到了SolrDocument中,导致上面的错误。这次与之前的不同没有提示“undefined field”,如果提示“undefined field”会很容易的发现是字段问题。

猜你喜欢

转载自blog.csdn.net/henrymrz/article/details/80517061