一. 說明

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