Solr配置

时间:2011-07-11 02:35:23

标签: java solr

我尝试使用以下方法安装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

6 个答案:

答案 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