標籤:
一. 說明
Solr5內建了Jetty服務,所以不用安裝部署到Tomcat了,網上部署Tomcat的資料太泛濫了。
部署前的準備工作:
1. 將各主機IP配置為靜態IP(保證各主機可以正常通訊,為避免過多的網路傳輸,建議在同一網段)。
2. 修改主機名稱,配置各主機映射;修改hosts檔案,加入各主機IP和主機名稱的映射。
3. 開放相應連接埠或者直接關閉防火牆。
4. 保證Zookeeper叢集服務正常運行。Zookeeper的部署參考:http://www.cnblogs.com/wxisme/p/5178211.html
5. root許可權
6.相關參數和組件的說明:
Collection:在SolrCloud叢集中邏輯意義上的完整的索引。它常常被劃分為一個或多個Shard,它們使用相同的Config Set。如果Shard數超過一個,它就是分布式索引,SolrCloud讓你通過Collection名稱引用它,而不需要關心分布式檢索時需要使用的 和Shard相關參數。
Core:也就是Solr Core,一個Solr中包含一個或者多個Solr Core,每個Solr Core可以獨立提供索引和查詢功能,每個Solr Core對應一個索引或者Collection的Shard,Solr Core的提出是為了增加管理靈活性和共用資源。在SolrCloud中有個不同點是它使用的配置是在Zookeeper中的,傳統的Solr core的設定檔是在磁碟上的配置目錄中。
Leader:贏得選舉的Shard replicas。每個Shard有多個Replicas,這幾個Replicas需要選舉來確定一個Leader。選舉可以發生在任何時間,但是通常他 們僅在某個Solr執行個體發生故障時才會觸發。當索引documents時,SolrCloud會傳遞它們到此Shard對應的leader,leader 再分發它們到全部Shard的replicas。
Replica:Shard的一個拷貝。每個Replica存在於Solr的一個Core中。一個命名為“test”的collection以 numShards=1建立,並且指定replicationFactor設定為2,這會產生2個replicas,也就是對應會有2個Core,每個在 不同的機器或者Solr執行個體。一個會被命名為test_shard1_replica1,另一個命名為test_shard1_replica2。它們中 的一個會被選舉為Leader。
Shard:Collection的邏輯分區。每個Shard被化成一個或者多個replicas,通過選舉確定哪個是Leader。
二. 安裝過程
1. 到Apache官網下載Solr-5.2.1安裝包
2. 進入到Solr檔案的目錄,執行以下命令從壓縮包中抽出安裝指令碼:
tar -xvzf solr-5.2.1.tgz solr-5.2.1/bin/install_solr_service.sh --strip-components=2
3. 運行安裝指令碼
執行以下命令安裝Solr:
./install_solr_service.sh solr-5.2.1.tgz -i /usr/solr/solr5 -d /usr/solr/solr5 -u solr -s solr -p 8983
或者執行以下命令按照預設值安裝:
./install_solr_service.sh solr-5.2.1.tgz
其實也可以直接解壓安裝包,然後自訂配置即可。
4.修改配置
執行以下命令編輯solr.in.sh檔案:
vim /usr/solr5/solr.in.sh
參照如下進行修改:
SOLR_JAVA_MEM="-Xms1G -Xmx1G"
ZK_HOST="node1:2181,node2:2181,node3:2181/solr"
記憶體限制可以按照需要設定。
5.按照上述步驟在其他節點執行安裝
三. 啟動Solr服務並驗證
1. 在Solr叢集中各節點執行以下命令啟動Solr服務:
service solr start
2.查看Solr狀態
service solr status
3.登入Solr UI
http://node1:8983/solr
四. 測試Solr
Solr提供了幾種常用的方式來操作,Shell命令、REST API、SolrJ介面等等,根據實際情況選擇。下面的操作為了簡單方便的示範使用Shell命令的方式。
1. 開啟並編輯server/solr/configsets/sample_techproducts_configs/conf下的schema.xml檔案,在檔案末尾隨便添加一個field。
2. 建立一個collection並上傳關聯設定檔至Zookeeper。
./bin/solr create_collection -c students -d server/solr/configsets/sample_techproducts_configs/conf -shards 3 -replicationFactor 3
如果以後要更新設定檔到Zookeeper,可以使用以下命令更新全部配置:
./server/scripts/cloud-scripts/zkcli.sh -zkhost node2:2181,node1:2181,node3:2181 -cmd upconfig -confname students -confdir server/solr/configsets/sample_techproducts_configs/conf
如果只更新單個檔案使用putfile命令:
./server/scripts/cloud-scripts/zkcli.sh -zkhost node2:2181,node1:2181,node3:2181 -cmd putfile /solr/configs/students/schema.xml /usr/tempfiles/schema.xml
路徑的前者為設定檔在Zookeeper中的儲存路徑,後者是設定檔的本地路徑。需要注意的是如果Zookeeper中的這個檔案存在需要先刪除之,然後在上傳更新。可以登入Zookeeper中操作:
ZK_HOME/./bin/zkCli.sh -timeout 5000 -server node3:2181
登入到Zookeeper之後可以使用命令來對設定檔刪除以及其他的操作,如果不清楚設定檔在Zookeeper中的位置也可以查看。
3.檢測collection是否成功建立,在Solr UI中重新整理頁面,點擊Cloud如果成功建立了Collection會顯示出Solr的叢集拓撲。
還可以查看定義的schema.xml是否生效
4.添加索引,查詢資料
1.添加索引資料可以使用上述的幾種方式,為簡單起見使用Solr UI添加簡單的索引資料進行測試
點擊提交會返回成功的資訊:
2.查詢測試
測試完之後可以刪除Collection
http://node1:8983/solr/admin/collections?action=DELETE&name=students
到此Solr的部署和簡單的測試就完成了,接下來就可以深入學習Solr的工作原理、資料結構的定義、配置和查詢了。
參考資料:Solr官方文檔
Solr3.6.1 在Tomcat6下的環境搭建 http://www.linuxidc.com/Linux/2013-01/77664.htm
基於Tomcat的Solr3.5叢集部署 http://www.linuxidc.com/Linux/2012-12/75297.htm
在Linux上使用Nginx為Solr叢集做負載平衡 http://www.linuxidc.com/Linux/2012-12/75257.htm
Linux下安裝使用Solr http://www.linuxidc.com/Linux/2012-10/72029.htm
在 Ubuntu 12.04 LTS 上通過 Tomcat 部署 Solr 4 http://www.linuxidc.com/Linux/2012-09/71158.htm
Solr實現Low Level查詢解析(QParser) http://www.linuxidc.com/Linux/2012-05/59755.htm
基於Solr 3.5搭建搜尋伺服器 http://www.linuxidc.com/Linux/2012-05/59743.htm
Solr 3.5開發應用教程 PDF高清版 http://www.linuxidc.com/Linux/2013-10/91048.htm
Solr 4.0 部署執行個體教程 http://www.linuxidc.com/Linux/2013-10/91041.htm
Solr 的詳細介紹:請點這裡
Solr 的:請點這裡
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-02/128498.htm
SolrCloud-5.2.1 叢集部署及測試