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。