FusionInsight C60U10 solr导入数据异常

发布时间:  2017-05-04 浏览次数:  448 下载次数:  0
问题描述

solr入库数据报错,查看任务日志,节点的container日志都报collection中shard异常,solr导入数据失败,


告警信息

日志信息如下:

2017-05-03 10:48:53,144 - triott.g4.preprocess.command.SolrPersistCommand -76932445 [Executor task launch worker-6] ERROR?- org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://176.1.9.5:21100/solr/HTTP__20170502: No registered leader was found after waiting for 4000ms , collection: HTTP__20170502 slice: shard2

triott.g4.preprocess.persist.SolrPersistException: org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://176.1.9.5:21100/solr/HTTP__20170502: No registered leader was found after waiting for 4000ms , collection: HTTP__20170502 slice: shard2

处理过程

1、从报错日志来看collection名HTTP__20170502的shard2异常,此时需收集solr原生页面的collection状态看下是否正常(搜集方法在Solr Admin页面,选择“Cloud > Graph”即可查看Collection的状态),信息如下



2、从反馈的截图看shard2未分配到core实例,要分析原因需要收集创建HTTP__20170502的时间,创建前后一个小时所有solr节点的solr日志,由于创建时间比较长日志被冲掉了无法定位具体原因(可能是创建的时候分配给shard的节点网络异常所致)

3、解决此问题有两个方法优先选方法1:

方法1,通过命令给shard添加实例:登陆客户端执行如下命令(注:以下命令只是举例具体参数根据实际修改)

solrctl collection --addreplica -p collection=HTTP__20170502 -p shard=shard2 -p node=189.39.173.175:21104_solr

collection就是客户出问题的那个collection名,shard就是那个没有对应core的shard,node就是重新分配的core实例(在live-nodes中有的在collection表里面没有)

说明:collection里面的shard对应的IP地址不能重复,需要在solr原生页面选择Cloud->Tree->live_nodes目录中对比一下core实例地址(shard分配的地址需从live-nodes中选且在collection中不能重复)live_nodes目录截图如下:

方法2:把这个collection删掉,重新建,再重新导入数据

4、执行命令之后刷新solr原生页面可以看到之前未分配到实例的shard2已经分配了

5、重新导入数据正常,问题解决


根因

创建collection时shard分配实例出现异常导致collection不正常,当数据写入到shard2时找不到实例超时后就会失败。

解决方案

使用命令为异常的shard添加实例

END