我尝试使用以下方法安装Solr:
java -jar start.jar
但是我下载了源代码而没有编译它(没注意)。错误是:
http://localhost:8983/solr/admin/
HTTP ERROR: 404
Problem accessing /solr/admin/. Reason:
NOT_FOUND
然后我下载了solr的编译版本,但在尝试运行示例配置时,我得到了异常:
java.net.BindException: Address already in use
有没有办法恢复solr配置并从头开始?看起来配置搞砸了。我手册中没有看到与之相关的任何内容。
这是错误:
2011-07-10 22:41:27.631:WARN::failed SocketConnector@0.0.0.0:8983: java.net.BindException: Address already in use
2011-07-10 22:41:27.632:WARN::failed Server@c4e21db: java.net.BindException: Address already in use
2011-07-10 22:41:27.632:WARN::EXCEPTION
java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
at java.net.ServerSocket.bind(ServerSocket.java:328)
at java.net.ServerSocket.<init>(ServerSocket.java:194)
at java.net.ServerSocket.<init>(ServerSocket.java:150)
at org.mortbay.jetty.bio.SocketConnector.newServerSocket(SocketConnector.java:80)
at org.mortbay.jetty.bio.SocketConnector.open(SocketConnector.java:73)
at org.mortbay.jetty.AbstractConnector.doStart(AbstractConnector.java:283)
at org.mortbay.jetty.bio.SocketConnector.doStart(SocketConnector.java:147)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.Server.doStart(Server.java:235)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.mortbay.start.Main.invokeMain(Main.java:194)
at org.mortbay.start.Main.start(Main.java:534)
at org.mortbay.start.Main.start(Main.java:441)
at org.mortbay.start.Main.main(Main.java:119)
Jul 10, 2011 10:41:27 PM org.apache.solr.core.SolrCore registerSearcher
INFO: [] Registered new searcher Searcher@5b6b9e62 main
答案 0 :(得分:17)
这意味着您已经在该特定端口上运行了应用程序。
执行命令
$ lsof -i :8983
这将为您提供在该端口上运行的任何应用程序的列表。就我而言,Solr已经在运行,我回来了:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 10289 patricia 111u IPv6 399410 0t0 TCP *:8983 (LISTEN)
填写你的PID来杀死这个过程:
$ kill 10289
然后再次尝试运行Solr。
答案 1 :(得分:9)
java.net.BindException
表示您尝试在早期实例继续运行时重新启动solr
,或者更少可能是您在端口8983上运行了其他内容。您应该找到该进程,将其终止,然后再次启动solr
。
答案 2 :(得分:6)
它绑定到其他一些应用程序。如果它是一个重要的应用程序,您可以使用以下命令更改jetty默认端口:
java -Djetty.port=8181 -jar start.jar
答案 3 :(得分:2)
ps aux | grep solr
OR
ps aux | grep start.jar
然后获取进程ID并将其杀死:
kill -9 #PID#
示例:kill -9 4989
更新: 杀死过程如果你想重新安装solr你灵魂先卸载它,以下是卸载它的解决方案之一:
sudo service solr stop
sudo rm -r /var/solr
sudo rm -r /opt/solr-5.3.1
sudo rm -r /opt/solr
sudo rm /etc/init.d/solr
sudo deluser --remove-home solr
sudo deluser --group solr
现在您可以毫无问题地重新安装它。
答案 4 :(得分:0)
如果sudo lsof -i:8983
无法帮助查找在同一端口上运行的应用程序,则常见的错误是Tomcat配置错误(如果您正在使用它)。
例如,默认情况下,Tomcat在端口8005上侦听SHUTDOWN命令,如果您设置另一个连接器在同一端口上侦听,则会发生端口冲突。
因此,如果这些端口不同,请仔细检查server.xml
:
<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8983" protocol="HTTP/1.1"
答案 5 :(得分:0)
也许有些疯狂的想法是使用docker逐步阅读完整的扩展并重复安装:
此处为dockerhub选择在docker Docker Hub Solr
中运行的特定版本在这里github阅读docker recipe Solr docker Recipe