我已经按照https://gist.github.com/fschiettecatte/836d13be0c95f1fd159e45d3af861952中提到的过程创建了Solr war文件,因为我希望通过我的特定版本的jetty服务器将Solr作为独立应用程序运行。
在创建war文件之后,我通过jetty成功地启动了solr
运行以下命令:
$ java -Djetty.home=/var/solr -Djetty.base=/var/solr
-Dsolr.solr.home=/var/solr/solr -Dsolr.log.dir=/var/solr/solr
-Dbootstrap_confdir=/var/solr/solr/conf -Dcollection.configName=conf
-DzkRun -Djava.util.logging.config.file=/var/solr/solr/solr-log.properties
-jar /var/solr/start.jar
2021-08-20 07:49:40.869:INFO::main: Logging initialized @155ms to
org.eclipse.jetty.util.log.StdErrLog
2021-08-20 07:49:41.021:INFO:oejs.Server:main: jetty-9.4.18.v20190429;
built: 2019-05-10T18:03:12.512Z; git:
7ef7435fd940d3eb73c256b765d93aff5849c6e8; jvm 11.0.5+10
2021-08-20 07:49:41.029:INFO:oejdp.ScanningAppProvider:main:
Deployment monitor [file:///data/git/runtime/solr/webapps/] at
interval 1
2021-08-20 07:49:41.568:INFO:oejw.StandardDescriptorProcessor:main: NO
JSP Support for /solr, did not find
org.apache.jasper.servlet.JspServlet
2021-08-20 07:49:41.572:INFO:oejs.session:main:
DefaultSessionIdManager workerName=node0
2021-08-20 07:49:41.573:INFO:oejs.session:main: No SessionScavenger
set, using defaults
2021-08-20 07:49:41.573:INFO:oejs.session:main: node0 Scavenging every 600000ms
2021-08-20 07:49:41.575:WARN:oejs.SecurityHandler:main:
ServletContext@o.e.j.w.WebAppContext@294425a7{solr,/solr,file:///tmp/jetty-0.0.0.0-8983-solr.war-_solr-any-17126331786779836602.dir/webapp/,STARTING}{/solr.war}
has uncovered http methods for path: /
ERROR StatusLogger No Log4j 2 configuration file found. Using default
configuration (logging only errors to the console), or user
programmatically provided configurations. Set system property
'log4j2.debug' to show Log4j 2 internal initialization logging. See
https://logging.apache.org/log4j/2.x/manual/configuration.html for
instructions on how to configure Log4j 2
2021-08-20 07:49:43.647:INFO:oejsh.ContextHandler:main: Started
o.e.j.w.WebAppContext@294425a7{solr,/solr,file:///tmp/jetty-0.0.0.0-8983-solr.war-_solr-any-17126331786779836602.dir/webapp/,AVAILABLE}{/solr.war}
2021-08-20 07:49:43.652:INFO:oejs.AbstractConnector:main: Started
ServerConnector@6da9dc6{HTTP/1.1,[http/1.1]}{0.0.0.0:8983}
2021-08-20 07:49:43.653:INFO:oejs.Server:main: Started @2939ms我的solr运行得很好,我运行了几个命令来验证:
$ curl "http://0.0.0.0:8983/solr/admin/collections?action=clusterstatus&wt=xml“
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">19</int>
</lst>
<lst name="cluster">
<lst name="collections"/>
<arr name="live_nodes">
<str>192.168.1.2:8983_solr</str>
</arr>
</lst>
</response>当我尝试创建内核时,它失败了,错误如下,之前
运行此命令,我在solr主目录“/var/solr/solr/a10”下创建了名为“cores”的文件夹。
$ curl "http://0.0.0.0:8983/solr/admin/cores?action=CREATE&name=a10&instanceDir=cores/a10&shard=shard10&collection=conf1&coreNodeName=a10&wt=xml“
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">400</int>
<int name="QTime">10067</int>
</lst>
<lst name="error">
<lst name="metadata">
<str name="error-class">org.apache.solr.common.SolrException</str>
<str name="root-error-class">org.apache.solr.cloud.ZkController$NotInClusterStateException</str>
</lst>
<str name="msg">Error CREATEing SolrCore 'a10': coreNodeName a10 does
not exist in shard shard10, ignore the exception if the replica was
deleted</str>
<int name="code">400</int>
</lst>
</response>由于jetty控制台中的此错误而导致的回溯:
07:54:36.047 qtp466505482-21 ERROR org.apache.solr.handler.RequestHandlerBase - org.apache.solr.common.SolrException: Error CREATEing SolrCore ' a1 ':分片shard1中不存在coreNodeName a1,如果在org.apache.solr.core.CoreContainer.create(CoreContainer.java:1136)、org.apache.solr.handler.admin.CoreAdminOperation.lambda$static$0(CoreAdminOperation.java:92)、org.apache.solr.handler.admin.CoreAdminOperation.execute(CoreAdminOperation.java:360)、org.apache.solr.handler.admin.CoreAdminHandler$CallInfo.call(CoreAdminHandler.java:396)、org.apache.solr.handler.admin.CoreAdminHandler.handleRequestBody(CoreAdminHandler.java:180)、org.apache.solr.handler删除了复制副本,则忽略此异常。RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)在org.apache.solr.servlet.HttpSolrCall.handleAdmin(HttpSolrCall.java:758)在org.apache.solr.servlet.HttpSolrCall.handleAdminRequest(HttpSolrCall.java:739)在org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:511)在org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:395)在org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:341)在org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) at org.eclipse.jetty.server.session.SessionHandler.doHandle(org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1667) at org.eclipse.jetty.server.handler)。ScopedHandler.nextScope(ScopedHandler.java:201)在org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)在org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)在org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)在org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:152)在org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)在org.eclipse。org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) 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的jetty.server.Server.handle(Server.java:505)。strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)在org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)在org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)在org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:132)在org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:724)在org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:830) at java.base/java.lang.Thread.run(Thread.java:834)原因: org.apache.solr.cloud.ZkController$NotInClusterStateException: coreNodeName a1在分片shard1中不存在,如果在org.apache.solr.cloud.ZkController.checkStateInZk(ZkController.java:1874)、org.apache.solr.cloud.ZkController.preRegister(ZkController.java:1773)、org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1180)、org.apache.solr.core.CoreContainer.create(CoreContainer.java:1097)删除了复制副本,则忽略异常... 41更多信息
发布于 2021-09-08 11:14:36
当我在独立模式下启动Solr时,我的问题得到了解决。由于create core命令失败,我在云模式下启动了solr。
Solr接口仅在solr以独立模式启动时使用,在solr以云模式启动时应使用Collection相关接口。
https://stackoverflow.com/questions/68887592
复制相似问题