1. 程式人生 > >搜尋引擎(Solr配置管理詳解)

搜尋引擎(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