web-dev-qa-db-ja.com

Solrを再起動する正しい方法はどれですか

Solrスキーマファイルにいくつかの変更を加えました。Solrを新しいスキーマの更新で実行するために、SolRを再起動する必要があります。

これは、solrがstart.jarファイルから実行されているサーバーでホストされていますが、それがどのように開始されたかはわかりません(おそらくNohupで)

別の質問からSolRを停止する方法を見つけました( https://stackoverflow.com/questions/2150767/how-to-start-solr-automatically ):

kill `ps uax | grep -i "Java -jar start.jar" | head -n 1 | awk '{print $2}'`

この後、「Java -jar start.jar」でSolRを起動します。

これは再起動を行う正しい方法ですか、それともjarを再起動する組み込み/より良い方法がありますか?

6
Orlando

Websolr では、カスタムinit.dスクリプトと Monit の組み合わせを使用してSolrを起動し、Solrが実行されていることを確認します。

とはいえ、システムがアップスタートを利用できる場合は、より単純な自己ホスト型のセットアップのために、Solrを開始および停止するために pstart を使用することをお勧めします。 Upstartスクリプトには、かなり単純であるという利点があり、Upstartは、プロセスがクラッシュした場合にプロセスを再開するのに適しています。さらに、開始コマンドと停止コマンド(それぞれstartstop)は、Solrに新しい構成を認識させる必要があるときに覚えておくのが非常に簡単です。

SolrをUpstartで開始する をカバーする優れたブログ投稿があります。以下のupstartスクリプトをコピーしました。システムと一致するように関連するパスを更新してください:

description "Solr Search Server"

# Make sure the file system and network devices have started before
# we begin the daemon
start on (filesystem and net-device-up IFACE!=lo)

# Stop the event daemon on system shutdown
stop on shutdown

# Respawn the process on unexpected termination
respawn

# The meat and potatoes
exec /usr/bin/Java -Xms128m -Xmx256m -Dsolr.solr.home=/path/to/solr/home -Djetty.home=/path/to/jetty -jar /path/to/jetty/start.jar >> /var/log/solr.log 2>&1
4
Nick Zadrozny

このアプローチを試すことができます http://wiki.Apache.org/solr/CoreAdmin#RELOAD

このようなコマンドを使用する

http://localhost:8983/solr/admin/cores?action=RELOAD&core=core0

すべての構成ファイルを再ロードするだけで、コアの再起動中にSOLRクエリのクエリを実行しても問題は発生しません。

4
Dorin

SolrCloudの場合、solrフォルダーから以下を実行します。

bin/solr restart -e cloud -noprompt
1
haky_nash