天天看點

Apache SolrCloud安裝1. 安裝環境2. 規劃SolrCloud3. 安裝ZooKeeper叢集4. 安裝Solr5. 設定 SolrCloud 配置檔案6. Tomcat 配置與啟動

solrcloud 通過 zookeeper 叢集來進行協調,使一個索引進行分片,各個分片可以分布在不同的實體節點上,多個實體分片組成一個完成的索引 collection。solrcloud 自動支援 solr replication,可以同時對分片進行複制,備援存儲。下面,我們基于 solr 最新的 4.4.0 版本進行安裝配置 solrcloud 叢集。

我使用的安裝程式各版本如下:

各個目錄說明:

所有的程式安裝在 <code>/opt</code> 目錄下,你可以依照你的實際情況下修改安裝目錄。

zookeeper的資料目錄在: <code>/data/zookeeper/data</code>

solrhome設定在: <code>/usr/local/solrhome</code>

單一solrcloud資料集合: primary

zookeeper叢集: 3台

solrcloud執行個體: 3節點

索引分片: 3

複制因子: 2

手動将3個索引分片(shard)的複本(replica)分布在3個 solrcloud 節點上

三個節點:

192.168.56.121

192.168.56.122

192.168.56.123

由于需要用到 zookeeper,故我們先安裝好 zookeeper 叢集。

安裝 zookeeper 叢集之前,請確定每台機器上配置 <code>/etc/hosts</code>檔案,使每個節點都能通過機器名通路。

首先,在第一個節點上将 zookeeper-3.4.5.tar.gz 解壓到 <code>/opt</code> 目錄:

建立 zookeeper 配置檔案 zookeeper-3.4.5/conf/zoo.cfg,内容如下:

zookeeper 的資料目錄指定在 <code>/data/zookeeper/data</code> ,你也可以使用其他目錄,通過下面指令進行建立該目錄:

然後,初始化 myid ,三個節點編号依次為 <code>1,2,3</code> ,在其餘節點上分别執行指令(注意修改編号)。

然後,在第二個和第三個節點上依次重複上面的操作。這樣第一個節點中 myid 内容為1,第二個節點為2,第三個節點為3。

最後,啟動 zookeeper 叢集,在每個節點上分别啟動 zookeeper 服務:

可以檢視 zookeeper 叢集的狀态,保證叢集啟動沒有問題:

簡單來說,執行以下指令:

在其他節點上重複以上操作完成所有節點的 solr 的安裝。

1、 建立一個 solrcloud 目錄,并将 solr 的 lib 檔案拷貝到這個目錄:

2、 通過 bootstrap 設定 solrhome :

這裡設定 solrhome 為 /usr/local/solrhome,建立該目錄:

然後,運作下面指令将 solrhome 下面的配置上傳到 zookeeper:

solrcloud 叢集的所有的配置存儲在 zookeeper。 一旦 solrcloud 節點啟動時配置了 <code>-dbootstrap_confdir</code> 參數, 該節點的配置資訊将發送到 zookeeper 上存儲。基它節點啟動時會應用 zookeeper 上的配置資訊,這樣當我們改動配置時就不用一個個機子去更改了。

3、solrcloud 是通過 zookeeper 叢集來保證配置檔案的變更及時同步到各個節點上,是以,需要将我們自己的配置檔案(在 /usr/local/solrcloud/conf/primary/conf 目錄下)上傳到 zookeeper 叢集中,配置名稱設為 primaryconf:

說明:

<code>zkhost</code> 指定 zookeeper 位址,逗号分割

<code>/usr/local/solrcloud/conf/</code> 目錄下存在名稱為 primary 的目錄,該目錄下的配置是後面需要用到的。

<code>primaryconf</code> 為在 zookeeper 上的配置檔案名稱。

/usr/local/solrcloud/conf 結構如下:

schema.xml 内容如下:

solrconfig.xml 内容如下:

4、建立 collection 并和配置檔案關聯:

建立的 collection 叫做 primary,并指定和 primaryconf 連接配接

5、檢視 zookeeper 上狀态

在任意一個節點的 /opt 目錄下執行如下指令:

檢視 <code>/configs</code> 和 <code>/collections</code> 目錄均有值,說明配置檔案已經上傳到 zookeeper 上了,接下來啟動 solr。

1、修改每個節點上的 tomcat 配置檔案,在環境變量中添加 <code>zkhost</code> 變量

編輯 <code>apache-tomcat-6.0.36/bin/catalina.sh</code> ,添加如下代碼:

在 <code>/usr/local/solrhome/</code> 目錄建立 solr.xml :

<code>-djetty.port</code>:配置 solr 使用的端口,預設為 8983,這裡我們使用的是 tomcat,端口為 8080

<code>-dsolr.solr.home</code>:配置 solr/home

<code>-zkhost</code>: 配置 zookeeper 叢集位址,多個位址逗号分隔

最後,在 /opt 目錄下啟動 tomcat: