2011-07-11 16 views
9

Me trataron de Solr instalado usando:configuración Solr

java -jar start.jar 

Sin embargo he descargado el código fuente y no recogió él (no prestó atención). Y el error fue:

http://localhost:8983/solr/admin/ 

HTTP ERROR: 404 
Problem accessing /solr/admin/. Reason: 
NOT_FOUND 

Entonces descargado la versión compilada de Solr, pero al intentar ejecutar la configuración de ejemplo que estoy recibiendo excepción:

java.net.BindException: Address already in use 

¿Hay una manera de revertir la configuración y Solr ¿empezar desde el principio? Parece que la configuración se echó a perder. No veo nada relacionado con esto en el manual.

Aquí está el error:

2011-07-10 22:41:27.631:WARN::failed [email protected]:8983: java.net.BindException: Address already in use 
2011-07-10 22:41:27.632:WARN::failed [email protected]: 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 [email protected] main 

Respuesta

9

El java.net.BindException significa que usted está tratando de reiniciar solr mientras que una instancia anterior sigue funcionando, o menos probablemente que usted tiene algo más que se ejecuta en el puerto 8983. Debe encontrar ese proceso, mátalo, y luego comienza solr nuevamente.

6

Está vinculado a alguna otra aplicación. En caso de que su una aplicación importante que puede cambiar el puerto por defecto embarcadero usando siguiente:

java -Djetty.port=8181 -jar start.jar 
15

Esto significa que ya tiene una aplicación que se ejecuta en ese puerto en particular.

Run:

$ lsof -i :8983 

Esto le da una lista de cualquier aplicación que se ejecuta en ese puerto. En mi caso, Solr ya se está ejecutando, y me da la espalda:

COMMAND PID  USER FD TYPE DEVICE SIZE/OFF NODE NAME 
java 10289 patricia 111u IPv6 399410  0t0 TCP *:8983 (LISTEN) 

matar a este proceso mediante la cumplimentación de su PID:

$ kill 10289 

Y a continuación, intente ejecutar de nuevo Solr.

0

Si sudo lsof -i:8983 no ayuda a encontrar una aplicación que se ejecuta en el mismo puerto, el error común es la configuración incorrecta de Tomcat (si la está usando).

Por ejemplo, de forma predeterminada, Tomcat escucha en el puerto 8005 el comando SHUTDOWN y si configura otro conector para escuchar en el mismo puerto, obtendrá conflicto de puerto.

Así que por favor vuelva a comprobar en server.xml si estos puertos son diferentes:

<Server port="8005" shutdown="SHUTDOWN"> 
    <Connector port="8983" protocol="HTTP/1.1" 
0

Tal vez una idea loca es utilizar cargador de muelle para leer un paso prolongado completa a paso y la instalación repetible:

Aquí dockerhub a seleccionar la versión de tu carrera específica en ventana acoplable Docker Hub Solr

Y aquí github para leer la receta ventana acoplable Solr docker Recipe

1
ps aux | grep solr 

O

ps aux | grep start.jar 

Y el proceso de conseguir a continuación Identificación y matarlo:

kill -9 #PID# 

ejemplo: kill -9 4989

ACTUALIZACIÓN: después de matar al proceso si desea Para reinstalar Solr you soul primero desinstálalo, la siguiente es una de las soluciones para desinstalarlo:

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 

Ahora puede volver a instalarlo sin ningún problema.