Solr Reference Guide 5.3: Managing Solr

Taking Solr to Production

Service Installation Script

bin/install_solr_service.sh

資料夾結構規劃

預設安裝在 /opt,例如,如果執行 Solr 5.0.0 的安裝程式,就會使用下列資料夾結構:

/opt/solr-5.0.0 
/opt/solr -> /opt/solr-5.0.0

可寫入的檔案預設放在 /var/solr

建立 Solr 使用者

預設建立使用者帳號 solr 來執行 solr.

執行 Solr 安裝程式

下載 Solr 5.3.0 然後執行以下命令:

$ tar xzf solr-5.3.0.tgz solr-5.3.0/bin/install_solr_service.sh --strip-components=2

上面的命令會從壓縮檔中把 install_solr_service.sh 取出來放在目前的資料夾。

這個安裝程式必須以 root 來執行:

$ sudo bash ./install_solr_service.sh solr-5.3.0.tgz

查看 solr 執行狀態

$ sudo service solr status

Solr Home Directory

Solr home 目錄(不要跟 Solr 安裝目錄混淆)預設在 /var/solr/data,檢查一下,這個資料夾下應該有 solr.xml。

Environment overrides include file

安裝程式會建立一個 environment specific include file 供 bin/solr 使用,這個檔案會覆蓋預設值。

查看一下 /var/solr/solr.in.sh 的內容,這是安裝程式預設的路徑。

這個檔案最少要定義 SOLR_PID_DIR 以及 SOLR_HOME 變數。例如:

SOLR_PID_DIR=/var/solr
SOLR_HOME=/var/solr/data

Log Settings

預設 log 放在 /var/solr/logs,查看 /var/solr/solr.in.sh 裡的設定:

LOG4J_PROPS=/var/solr/log4j.properties
SOLR_LOGS_DIR=/var/solr/logs

init.d script

在 Linux 上執行像 Solr 這樣的服務,通常會建立一個 init.d script,這樣系統管理者就可以使用像 service solr start 這樣的命令來控制 solr.

安裝程式會建立一個很基本的 init.d script,檢視 /etc/init.d/solr

SOLR_INSTALL_DIR=/opt/solr
SOLR_ENV=/var/solr/solr.in.sh
RUNAS=solr

/etc/init.d/solr script 也支援 stop、restart 以及 status 命令。

Fine tune your production setup

Memory and GC Settings

預設 bin/solr script 會將 Java heap 最大值設為 512M (-Xmx512m),剛開始用 Solr 時這是沒有問題的。

但是在正式服務時,根據應用的需求,你大概會想增加這個 heap size 的最大值,10 至 20 GB 之間都不是罕見的情況。

當你需要變更這個記憶體設定時,使用 include file 裡的 SOLR_JAVA_MEM 變數:

SOLR_JAVA_MEM="-Xms10g -Xmx10g"

Solr Hostname

使用 include file 裡的 SOLR_HOST 變數來設定 Solr server 的 hostname。

SOLR_HOST=solr1.example.com

建議設定 Solr server 的 hostname,尤其是執行 SolrCloud 模式的時候。

Making and Restoring Backups of SolrCores

備份及還原,使用 Solr 的 replication handler。