搜尋引擎(Solr配置管理詳解)
學習目標
掌握在生產環境中安裝配置solr
掌握solr的安全配置
掌握solr的集合管理
應用於生產
在linux系統上安裝solrCloud
1.依賴:
JRE solr7.3 需要 java1.8
獨立的zookeeper服務 ,zookeeper安裝請參考:
http://zookeeper.apache.org/doc/current/zookeeperStarted.html
2.上傳solr安裝包
3.從安裝包中解出安裝指令碼
tar xzf solr-7.3.0.tgz solr-7.3.0/bin/install_solr_service.sh --strip-components=2
安裝指令碼可用於:CentOS, Debian, Red Hat, SUSE and Ubuntu Linux distributions
4.安裝指令碼引數說明:
./install_solr_service.sh -help -i 指定軟體安裝目錄。預設 /opt -d 指定資料目錄(solr主目錄):核心儲存目錄 。預設 /var/solr -u 指定要建立的擁有solr的使用者名稱,出於安全考慮,不應以root來執行。預設 solr -s 指定系統服務名。預設 solr -p 指定埠。預設 8983
5.目錄規劃
6.以root身份執行安裝指令碼進行安裝
./install_solr_service.sh solr-7.3.0.tgz
等同:
./install_solr_service.sh solr-7.3.0.tgz -i /opt -d /var/solr -u solr -s solr -p 8983
配置solr服務例項
1.認識solr服務的配置檔案
問:如何啟動一個solr服務例項?
1,系統服務指令碼: /etc/init.d/solr 請檢視該指令碼內容,看系統啟動時是如何啟動solr服務例項的。 可看到使用瞭如下三個變數:
2.環境引數配置檔案(官方叫法:include file)。它將覆蓋 bin/solr啟停控制指令碼中的配置引數。我們通過該檔案來配置修改solr服務例項的執行配置。
請檢視 /etc/default/solr.in.sh ,看我們可以在該檔案中進行哪些配置。
在 /etc/default/solr.in.sh 中可看到它配置瞭如下引數:
2.在/etc/default/solr.in.sh中配置如下引數
1.調整solr例項的記憶體,預設solr使用512M的堆記憶體,生產環境下肯定需要調大。
SOLR_JAVA_MEM="-Xms10g -Xmx10g"
2.配置ZK_HOST,讓服務例項以solrCloud模式執行
ZK_HOST=zk1,zk2:2182,zk3:2188
3.設定chroot。Solr預設使用zookeeper的/為其根目錄,在多應用共用zookeeper的情況下,為避免衝突,應該在單獨的子節點(如/solr)下來儲存solr的配置資訊。這個節點需事先建立好,然後配置如下:
ZK_HOST=zk1,zk2:2182,zk3:2188/solr
bin/solr zk mkroot /solr -z <ZK_node>:<ZK_PORT> 建立znode的命令
4.設定SOLR服務的主機名,在solrCloud模式下強烈建議配置。不設定則使用的是ip。
SOLR_HOST=solr1.example.com
5.為solrconfig.xml中用到的動態引數提供值
<autoSoftCommit>
<maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
</autoSoftCommit>
啟動時給入引數值
bin/solr start -Dsolr.autoSoftCommit.maxTime=10000
在solr.in.sh中配置引數值
SOLR_OPTS="$SOLR_OPTS -Dsolr.autoSoftCommit.maxTime=10000"
在一臺機器上執行多個solr服務
生產環境下,不要在一臺機器上執行多個solr服務。如果確要在一臺機器上執行多個solr服務例項,可以啟動指令碼加 –s 選項指定不同的solr主目錄。還可以簡單直接地安裝多個solr系統服務(不同的服務名、埠):
./install_solr_service.sh solr-7.3.0.tgz -s solr2 -p 8984
請看solr2裝在什麼位置了。請檢視目錄: /etc/init.d /etc/default