Solr系列二:solr-部署詳解(solr兩種部署模式介紹、獨立服務器模式詳解、SolrCloud分布式集群模式詳解)


一、solr兩種部署模式介紹

Standalone Server 獨立服務器模式:適用於數據規模不大的場景

SolrCloud  分布式集群模式:適用於數據規模大,高可靠、高可用、高並發的場景

二、獨立服務器模式詳解

1. 獨立服務器模式架構

說明:

1、每個solr服務器實例(啟動的一個solr服務器進程)都有一個solr主目錄(系統變量名為:solr.solr.home)。啟動服務器實例時須為實例指定主目錄(默認為:server/solr目錄)。

2、solr主目錄中存放該服務器實例托管的內核。

3、一個solr服務器實例中可托管多個內核。

2.Solr主目錄介紹

每個主目錄下都有一個solr服務器實例配置文件solr.xml。 solrCloud模式下solr.xml可放置在zk上。

 

創建一個主目錄(復制solr.xml),在它之上啟動一個服務實例

啟動命令:solr.cmd start -s D:/test/solrhome -p 8984

3. solr命令介紹

啟動服務器實例命令:

bin/solr start [options]

bin/solr start -help

bin/solr restart [options]

bin/solr restart -help

注意:重啟要用和啟動時一樣的options

啟動時指定solr主目錄的命令:solr.cmd start -s D:/test/solrhome -p 8984

查看本機上運行的solr服務實例的狀態:bin/solr status

 

停止solr服務實例:

bin/solr stop [options]

bin/solr stop -help

停止單個服務:

bin/solr stop –p port

停止所有solr實例:

bin/solr stop -all

4. core  內核詳解

4.1 內核以及內核的用途

內核:是在Solr服務器中的具體唯一命名的、可管理和可配置的索引。一台solr服務器可以托管一個或多個內核。

內核的典型用途:區分不同模式的文檔

4.2 core 內核管理:

創建內核

bin/solr create [options]

bin/solr create –help

bin/solr create_core [options]

bin/solr create_core -help

示例:

bin/solr create –c mycore –p 8983

-c <name> 內核的名字(必需).

-d <confdir> 內核配置目錄。默認_default.

-p <port> 創建命令要發送到的solr服務實例的端口。如未指定則獲取本機運行的solr服務實例列表的第一個。

卸載、加載、重載內核

 

 

 刪除內核

bin/solr delete [options]

bin/solr delete -help

 示例:

bin/solr delete –c corename –p port

 4.3 core 內核目錄結構

 

內核屬性文件core.properties的作用:配置內核的一些配置、作為內核的標識在啟動solr的時候加載內核

 注意:可以看到集群模式下是沒有conf目錄的,這是因為集群模式的conf是放在zk下給所有的內核使用的

 內核配置文件目錄

 

 

三、SolrCloud分布式集群模式詳解

1. 為什么需要分布式集群模式?

源於需求:

1. 索引數據量大

如何存儲? 如何保證搜索性能?

2. 如何保證高可靠、高可用?

3. 如何應對高並發、實時響應需求?

索引將被如何存儲?

分割成多個片存儲到集群的不同節點上,每個分片有備份,存儲在集群的不同節點上。

 獨立服務器上索引叫內核,那集群上索引叫什么?

 solrCloud中以 collection(集合)來稱呼索引,內核存儲的是集合分片(shard)的備份(replication)

 2. SolrCloud分布式集群架構  

 

3. 分布式集群模式啟動

3.1  啟動zookeeper

獨立的zookeeper,則需先啟動zookeeper

內嵌的zookeeper,則先啟動包含zookeeper的solrNode

3.2 啟動solrNode

內嵌的zookeeper的第一個solrNode節點服務啟動:

 bin/solr start –c –p port –s solrhome

其他solr節點的啟動:

bin/solr start –c –p port –s solrhome –z zkhost:port

 注意:啟動的zookeeper實例的端口為 slor實例的端口+1000

4. 分布式集群模式部署練習

 在我們的電腦上部署一個兩個節點的集群

步驟1:創建兩個solr主目錄,如

D:\test\solrCloud\node1\solr

D:\test\solrCloud\node2\solr

node1/solr目錄下需要zk的配置文件,到D:\solr-7.3.0\server\solr 下拷貝 zoo.cfg

然后到D:\solr-7.3.0\server\solr拷貝solr.xml到兩個solr目錄下

 步驟2:啟動第一個內嵌有zk的solrNode

 solr.cmd start –c –s D:/test/solrCloud/node1/solr -m 100M

沒有指定端口默認8983

 -m 100M表示分配100M的內存

步驟3:啟動第二個solrNode

solr.cmd start –c –s D:/test/solrCloud/node2/solr -m 100M -p 8984 –z localhost:9983

 注意:啟動的zookeeper實例的端口為 slor實例的端口+1000

在瀏覽器輸入地址http://localhost:8983/solr查看現在的solr的web控制台有什么變化

 

 

 創建集合 collection

 集合—分片數2---備份因子2

 solr.cmd create –c collection01 –d _default –shards 2 –replicationFactor 2 –p 8983

說明:在8983這個solr實例上使用默認配置_default創建一個集合collection01,這個集合有2個分片,每個分片有2個備份

 solr.cmd create –c collection02 –d sample_techproducts_configs –shards 2 –replicationFactor 2 –p 8983

 說明:在8983這個solr實例上使用默認配置sample_techproducts_configs創建一個集合collection02,這個集合有2個分片,每個分片有2個備份

 

創建完成以后就可以在solr的管理頁面看到創建的集合了

提交數據到集合collection02中:

Linux/Mac;

solr-7.3.0:$ bin/post -c collection02 example/exampledocs/*

Windows:

java -jar -Dc=collection02 -Dauto example\exampledocs\post.jar example\exampledocs\*

 執行完以后就可以在集合的備份內核中看到提交的數據了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM