Solr 8.3 - 获取副本位置时出错:添加副本时没有节点可以满足规则

问题描述

我将尝试将副本添加到现有集合中,该集合有大约 2 亿个文档,大小约为 280GB。 我将调用 http://localhost:8983/solr/admin/collections?action=ADDREPLICA&collection=Collection3&shard=shard1&node=10.10.10.12:8983_solr

并得到错误

  "responseHeader":{
    "status":500,"QTime":274},"Operation addreplica caused exception:":"org.apache.solr.cloud.api.collections.Assign$AssignmentException:org.apache.solr.cloud.api.collections.Assign$AssignmentException: Error getting replica locations :  No node can satisfy the rules \"[] More details from logs in node : 10.10.10.11:8983_solr,errorId : AutoScaling.error.diagnostics.3277099619256500\"","exception":{
    "msg":"Error getting replica locations :  No node can satisfy the rules \"[] More details from logs in node : 10.10.10.11:8983_solr,"rspCode":-1},"error":{
    "Metadata":[
      "error-class","org.apache.solr.common.solrException","root-error-class","org.apache.solr.common.solrException"],"msg":"Error getting replica locations :  No node can satisfy the rules \"[] More details from logs in node : 10.10.10.11:8983_solr,"trace":"org.apache.solr.common.solrException: Error getting replica locations :  No node can satisfy the rules \"[] More details from logs in node : 10.10.10.11:8983_solr,errorId : AutoScaling.error.diagnostics.3277099619256500\"\r\n\tat org.apache.solr.client.solrj.solrResponse.getException(SolrResponse.java:65)\r\n\tat org.apache.solr.handler.admin.CollectionsHandler.invokeAction(CollectionsHandler.java:291)\r\n\tat org.apache.solr.handler.admin.CollectionsHandler.handleRequestBody(CollectionsHandler.java:247)\r\n\tat org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:214)\r\n\tat org.apache.solr.servlet.HttpSolrCall.handleAdmin(HttpSolrCall.java:837)\r\n\tat org.apache.solr.servlet.HttpSolrCall.handleAdminRequest(HttpSolrCall.java:801)\r\n\tat org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:546)\r\n\tat org.apache.solr.servlet.solrdispatchFilter.doFilter(SolrdispatchFilter.java:415)\r\n\tat org.apache.solr.servlet.solrdispatchFilter.doFilter(SolrdispatchFilter.java:345)\r\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)\r\n\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\r\n\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:590)\r\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)\r\n\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)\r\n\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1300)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)\r\n\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)\r\n\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)\r\n\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1215)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)\r\n\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221)\r\n\tat org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:177)\r\n\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)\r\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)\r\n\tat org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:322)\r\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)\r\n\tat org.eclipse.jetty.server.Server.handle(Server.java:500)\r\n\tat org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)\r\n\tat org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547)\r\n\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)\r\n\tat org.eclipse.jetty.server.httpconnection.onFillable(httpconnection.java:273)\r\n\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)\r\n\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)\r\n\tat org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)\r\n\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)\r\n\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)\r\n\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)\r\n\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)\r\n\tat org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)\r\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)\r\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)\r\n\tat java.base/java.lang.Thread.run(Thread.java:832)\r\n","code":500}}

我尝试更改副本策略,但没有结果。

  "responseHeader":{
    "status":500,"QTime":229},"Operation addreplica caused exception:":"org.apache.solr.cloud.api.collections.Assign$AssignmentException:org.apache.solr.cloud.api.collections.Assign$AssignmentException: Error getting replica locations :  No node can satisfy the rules \"[{replica=<2,shard=#EACH,node=#ANY,collection=Collection2},{replica=<2,collection=Collection3},collection=Collection4},collection=Collection1},collection=Collection6}] More details from logs in node : 10.10.10.11:8983_solr,errorId : AutoScaling.error.diagnostics.3277628064970900\"","exception":{
    "msg":"Error getting replica locations :  No node can satisfy the rules \"[{replica=<2,"msg":"Error getting replica locations :  No node can satisfy the rules \"[{replica=<2,"trace":"org.apache.solr.common.solrException: Error getting replica locations :  No node can satisfy the rules \"[{replica=<2,errorId : AutoScaling.error.diagnostics.3277628064970900\"\r\n\tat org.apache.solr.client.solrj.solrResponse.getException(SolrResponse.java:65)\r\n\tat org.apache.solr.handler.admin.CollectionsHandler.invokeAction(CollectionsHandler.java:291)\r\n\tat org.apache.solr.handler.admin.CollectionsHandler.handleRequestBody(CollectionsHandler.java:247)\r\n\tat org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:214)\r\n\tat org.apache.solr.servlet.HttpSolrCall.handleAdmin(HttpSolrCall.java:837)\r\n\tat org.apache.solr.servlet.HttpSolrCall.handleAdminRequest(HttpSolrCall.java:801)\r\n\tat org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:546)\r\n\tat org.apache.solr.servlet.solrdispatchFilter.doFilter(SolrdispatchFilter.java:415)\r\n\tat org.apache.solr.servlet.solrdispatchFilter.doFilter(SolrdispatchFilter.java:345)\r\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)\r\n\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\r\n\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:590)\r\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)\r\n\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)\r\n\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1300)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)\r\n\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)\r\n\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)\r\n\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1215)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)\r\n\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221)\r\n\tat org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:177)\r\n\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)\r\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)\r\n\tat org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:322)\r\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)\r\n\tat org.eclipse.jetty.server.Server.handle(Server.java:500)\r\n\tat org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)\r\n\tat org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547)\r\n\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)\r\n\tat org.eclipse.jetty.server.httpconnection.onFillable(httpconnection.java:273)\r\n\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)\r\n\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)\r\n\tat org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)\r\n\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)\r\n\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)\r\n\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)\r\n\tat org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)\r\n\tat org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)\r\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)\r\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)\r\n\tat java.base/java.lang.Thread.run(Thread.java:832)\r\n","code":500}}

其他集合工作正常,添加副本也没有问题。我还使用与有问题的集合相同的配置集创建了新集合,并且还可以很好地添加副本。

日志文件

2021-01-18 09:29:57.877 INFO  (qtp1153907750-19) [   ] o.a.s.h.a.CollectionsHandler Invoked Collection Action :addreplica with params node=10.10.10.12:8983_solr&action=ADDREPLICA&collection=Collection3&shard=shard1 and sendToOCPQueue=true
2021-01-18 09:29:57.964 ERROR (OverseerThreadFactory-20-thread-5-processing-n:10.10.10.11:8983_solr) [c:Collection3 s:shard1  ] o.a.s.c.s.c.a.PolicyHelper errorId : AutoScaling.error.diagnostics.3277753693864300 {
  "sortednodes":[{
      "node":"10.10.10.11:8983_solr","isLive":true,"cores":5.0,"freedisk":116.462158203125,"totaldisk":399.98236083984375,"replicas":{
        "Collection2":{"shard1":[{
              "core_node1":{
                "core":"Collection2_shard1_replica_n1","shard":"shard1","collection":"Collection2","node_name":"10.10.10.11:8983_solr","type":"NRT","leader":"true","base_url":"http://10.10.10.11:8983/solr","state":"active","force_set_state":"false","INDEX.sizeInGB":0.003988941200077534}}]},"Collection3":{"shard1":[{
              "core_node1":{
                "core":"Collection3_shard1_replica_n1","collection":"Collection3","INDEX.sizeInGB":280.61771321762353}}]},"Collection4":{"shard1":[{
              "core_node1":{
                "core":"Collection4_shard1_replica_n1","collection":"Collection4","INDEX.sizeInGB":3.959145396947861E-5}}]},"Collection1":{"shard1":[{
              "core_node1":{
                "core":"Collection1_shard1_replica_n1","collection":"Collection1","INDEX.sizeInGB":6.705522537231445E-8}}]},"Collection6":{"shard1":[{
              "core_node4":{
                "core":"Collection6_shard1_replica_n3","collection":"Collection6","INDEX.sizeInGB":1.966021955013275E-6}}]}}},{
      "node":"10.10.10.12:8983_solr","cores":3.0,"freedisk":398.34539794921875,"replicas":{
        "Collection2":{"shard1":[{
              "core_node4":{
                "core":"Collection2_shard1_replica_n3","node_name":"10.10.10.12:8983_solr","base_url":"http://10.10.10.12:8983/solr","Collection3":{"shard1":[]},"Collection4":{"shard1":[{
              "core_node4":{
                "core":"Collection4_shard1_replica_n3","Collection6":{"shard1":[{
              "core_node2":{
                "core":"Collection6_shard1_replica_n1","INDEX.sizeInGB":1.966021955013275E-6}}]}}}],"liveNodes":["10.10.10.11:8983_solr","10.10.10.12:8983_solr"],"violations":[],"config":{
    "cluster-preferences":[{
        "minimize":"cores","precision":1},{
        "maximize":"freedisk"}],"cluster-policy":[{
        "replica":"<2","shard":"#EACH","node":"#ANY"}]}}
2021-01-18 09:29:57.965 ERROR (OverseerThreadFactory-20-thread-5-processing-n:10.10.10.11:8983_solr) [c:Collection3 s:shard1  ] o.a.s.c.a.c.OverseerCollectionMessageHandler Collection: Collection3 operation: addreplica Failed:org.apache.solr.cloud.api.collections.Assign$AssignmentException: Error getting replica locations :  No node can satisfy the rules "[{replica=<2,errorId : AutoScaling.error.diagnostics.3277753693864300"
    at org.apache.solr.cloud.api.collections.Assign.getPositionsUsingPolicy(Assign.java:397)
    at org.apache.solr.cloud.api.collections.Assign$PolicyBasedAssignStrategy.assign(Assign.java:639)
    at org.apache.solr.cloud.api.collections.Assign.getNodesForNewReplicas(Assign.java:371)
    at org.apache.solr.cloud.api.collections.AddReplicaCmd.buildreplicaPositions(AddReplicaCmd.java:373)
    at org.apache.solr.cloud.api.collections.AddReplicaCmd.addReplica(AddReplicaCmd.java:159)
    at org.apache.solr.cloud.api.collections.AddReplicaCmd.call(AddReplicaCmd.java:93)
    at org.apache.solr.cloud.api.collections.OverseerCollectionMessageHandler.processMessage(OverseerCollectionMessageHandler.java:264)
    at org.apache.solr.cloud.OverseerTaskProcessor$Runner.run(OverseerTaskProcessor.java:517)
    at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:218)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: org.apache.solr.common.solrException:  No node can satisfy the rules "[{replica=<2,errorId : AutoScaling.error.diagnostics.3277753693864300"
    at org.apache.solr.client.solrj.cloud.autoscaling.PolicyHelper.getReplicaLocations(PolicyHelper.java:198)
    at org.apache.solr.cloud.api.collections.Assign.getPositionsUsingPolicy(Assign.java:385)
    ... 11 more
 
2021-01-18 09:29:57.978 INFO  (qtp1153907750-19) [c:Collection3   ] o.a.s.s.HttpSolrCall [admin] webapp=null path=/admin/collections params={node=10.10.10.12:8983_solr&action=ADDREPLICA&collection=Collection3&shard=shard1} status=500 QTime=100
2021-01-18 09:29:57.979 ERROR (qtp1153907750-19) [c:Collection3   ] o.a.s.s.HttpSolrCall null:org.apache.solr.common.solrException: Error getting replica locations :  No node can satisfy the rules "[{replica=<2,errorId : AutoScaling.error.diagnostics.3277753693864300"
    at org.apache.solr.client.solrj.solrResponse.getException(SolrResponse.java:65)
    at org.apache.solr.handler.admin.CollectionsHandler.invokeAction(CollectionsHandler.java:291)
    at org.apache.solr.handler.admin.CollectionsHandler.handleRequestBody(CollectionsHandler.java:247)
    at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:214)
    at org.apache.solr.servlet.HttpSolrCall.handleAdmin(HttpSolrCall.java:837)
    at org.apache.solr.servlet.HttpSolrCall.handleAdminRequest(HttpSolrCall.java:801)
    at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:546)
    at org.apache.solr.servlet.solrdispatchFilter.doFilter(SolrdispatchFilter.java:415)
    at org.apache.solr.servlet.solrdispatchFilter.doFilter(SolrdispatchFilter.java:345)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:590)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1300)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1215)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221)
    at org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:177)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
    at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:322)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
    at org.eclipse.jetty.server.Server.handle(Server.java:500)
    at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
    at org.eclipse.jetty.server.httpconnection.onFillable(httpconnection.java:273)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
    at java.base/java.lang.Thread.run(Thread.java:832)
 
2021-01-18 09:29:59.902 INFO  (OverseerCollectionConfigSetProcessor-72272300412895235-10.10.10.11:8983_solr-n_0000000247) [   ] o.a.s.c.OverseerTaskQueue Response ZK path: /overseer/collection-queue-work/qnr-0000000142 doesn't exist. Requestor may have disconnected from ZooKeeper

有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)