2011-07-11 20 views
9

Próbowałem za pomocą zainstalowanej Solr:konfiguracji Solr

java -jar start.jar 

Jednak Pobrałem kod źródłowy i skompilować to nie (nie zwracać uwagę). A błąd był:

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

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

Potem ściągnąłem wersję skompilowaną Solr ale kiedy próbuje uruchomić konfigurację przykładową Dostaję wyjątek:

java.net.BindException: Address already in use 

Czy istnieje sposób, aby przywrócić konfigurację i Solr zaczynać od początku? Wygląda na to, że konfiguracja została pomieszana. Nie widzę w tym podręczniku niczego związanego z tym tematem.

Tutaj jest błąd:

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 

Odpowiedz

9

java.net.BindException oznacza, że ​​próbujesz uruchomić ponownie solr podczas gdy wcześniejsze wystąpienie nadal działa, lub mniej pewnie, że masz coś innego działającego na porcie 8983. Należy znaleźć ten proces, zabij go, a następnie ponownie uruchom solr.

6

Jest związany z inną aplikacją. W przypadku, gdy jest to ważna aplikacja, możesz zmienić domyślny port pomostu, używając:

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

Oznacza to, że masz już uruchomioną aplikację na tym konkretnym porcie.

Run:

$ lsof -i :8983 

Daje listę dowolnej aplikacji działającej na tym porcie. W moim przypadku Solr już działa, a ja wrócę:

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

zabić ten proces wypełniania swojej PID:

$ kill 10289 

a następnie spróbuj ponownie uruchomiony Solr.

0

Jeśli sudo lsof -i:8983 nie pomoże znaleźć aplikacji uruchomionej na tym samym porcie, częstym błędem jest błędna konfiguracja Tomcat (jeśli używasz go).

Na przykład Tomcat nasłuchuje na porcie 8005 komendy SHUTDOWN, a jeśli ustawisz inne złącze do nasłuchiwania na tym samym porcie, pojawi się konflikt portów.

Więc proszę dokładnie sprawdzić w server.xml czy porty te są różne:

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

Może jakiś szalony pomysł jest użycie docker przeczytać pełną wydłużony krok po kroku i powtarzalnej instalacji:

Tutaj dockerhub do wybrać konkretną wersję wień bieg w dokowanym Docker Hub Solr

I tu github czytać receptury Döcker Solr docker Recipe

1
ps aux | grep solr 

LUB

ps aux | grep start.jar 

I get następnie id procesu i zabić go:

kill -9 #PID# 

przykład: kill -9 4989

UPDATE: po zabiciu procesu, jeśli chcesz aby ponownie zainstalować solr ty dusza najpierw go odinstaluj, poniżej jest jednym z rozwiązań, aby go odinstalować:

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 

Teraz można go ponownie zainstalować bez problemu.