Solr集羣搭建詳細教程(二)

注:歡迎你們轉載,非商業用途請在醒目位置註明本文連接和做者名dijia478,商業用途請聯繫本人dijia478@163.com。html

以前步驟:Solr集羣搭建詳細教程(一)

3、solr集羣搭建

注意,在搭建solr集羣前,建議最好有一個solr服務是已經搭建好的,能夠簡化大量重複的配置操做。web

單機solr服務搭建過程參看個人這篇文章:shell

Solr服務在Linux上的搭建詳細教程

這個單機solr服務在solr集羣搭建第二步和第三步裏須要,搭建好一個solr服務後,就能夠進行集羣搭建了。tomcat

第一步:建立四個tomcat實例。每一個tomcat運行在不一樣的端口。8180、8280、8380、8480

上傳解壓步驟省略,這是我解壓好的服務器

複製tomcat到以前搭建zookeeper集羣第四步時,建立的/usr/local/solr-cloud目錄裏,複製4個併發

去solr-cloud目錄,發現已經複製好了4個tomcat目錄高併發

在tomcat目錄下的conf裏的server.xml,修改每一個tomcat的端口號,這裏只演示第一個目錄的,另外三個都要改,端口要互不衝突post

 用/port命令搜索port字符串,按n搜索下一個,有三個地方要改,依次更改成性能

其餘三個tomcat目錄裏的server.xml配置的端口按照234的順序全改了啊,具體過程這裏我就不截圖了。ui

一共要改四個文件,每一個文件裏改三個地方,這12個端口號要互不衝突

第二步:把單機版的solr工程複製到集羣中的tomcat中

在搭建好的單機solr服務裏(這裏是另外一篇教程,上面說過了),複製solr工程到第一步的4個tomcat目錄裏,一共是複製4份

第三步:爲每一個solr實例建立一個對應的solrhome。使用單機版的solrhome複製四份

同樣在以前搭建的單機solr服務裏,把solrhome複製4份出來到solr-cloud目錄裏

如今solr-cloud目錄裏是有這些目錄,檢查一下有沒有複製錯地方的:

第四步:配置solrCloud相關的配置。每一個solrhome下都有一個solr.xml,把其中的ip及端口號配置好

以前搭建單機版solr服務的時候沒有動過solrhome裏的這個文件,如今搭建集羣了,須要進行修改

須要修改4個solr.xml,我這裏仍是隻演示第一個,另外三個目錄裏的類比着改,同樣的,就是1234的順序

找到這個地方,第一個紅框表明當前節點的ip地址,就是你部署這個solrhome01,tomcat01集羣節點的服務器ip,實際工做中就是會部署4個服務器,一個服務器是一個節點,部署一個solr服務

第二個紅框表明當前solr服務實例的端口號,就是所在的tomcat的端口號,就是第一步在tomcat01的server.xml裏配置的8180

個人配置完後是這樣的

其餘三個照着改啊,因爲我是在一臺虛擬機搭建的四個實例,因此確定四個實例的ip是同樣的,但端口分別是8180,8280,8380,8480

第五步:須要修改solr服務的web.xml文件。把solrhome關聯起來

修改這個文件,和以前單機版的solr配置是同樣的

要注意的是,tomcat01這裏的solr服務,是上面第二步複製過來的對吧,是我以前用solr7搭建的單機solr服務,裏面的配置和solr4不太同樣,具體仍是去文章最上面看我提供的單機solr服務搭建教程連接

找到這個,這裏是我以前搭建單機solr服務時,配置的solrhome路徑

如今改爲集羣的solrhome01目錄,使他們關聯起來

其餘三個tomcat裏的web.xml都對應着一改,solrhome02,03,04

第六步:讓zookeeper統一管理配置文件。須要把/conf目錄上傳到zookeeper

如今咱們每個solr都有了本身的solrhome,如今咱們要讓每個solr實例的配置文件都同樣,這個配置文件須要集中管理,這個時候咱們使用zookeeper來統一管理配置文件。因此要將配置文件上傳到zookeeper中。那麼上傳哪些配置文件呢?

這裏注意下managed-schema文件,網上有不少低版本solr,會提到一個collection1/conf下的schema.xml,可是並無找到。好像是從5.0版本開始不使用schema.xml的,這倆其實內容都同樣,搞不懂爲啥要換個名字,並且內容格式是xml,可是文件名卻沒有.xml的後輟,這裏直接上傳整個conf目錄就行。

知道了要上傳什麼,那麼怎麼上傳呢?打開最先solr解壓出來的原始文件(若是刪了那就從新上傳解壓吧)

在這個目錄下有個腳本文件,執行這個腳本就能夠將配置文件上傳到zookeeper了,有點難找,我是用find命令給搜出來的。不過我這裏給出了pwd路徑

 

要注意,在執行腳本上傳配置文件前,必須先去啓動zookeeper集羣

而後回來執行腳本

這裏腳本的執行命令有點長,主要是參數多,建議複製出來改好後再粘貼上去

./zkcli.sh -zkhost 192.168.25.128:2181,192.168.25.128:2182,192.168.25.128:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/configsets/sample_techproducts_configs/conf -confname myconf

我解釋下各個參數的含義:

紅色框表明zookeeper集羣的ip和端口號列表(搭建zookeeper集羣的時候配置過的)

綠色框表明要執行的是上傳配置文件操做

黃色框表明的是要上傳的配置文件目錄(低版本不太同樣,具體以那兩個主要的配置文件所在目錄爲準,不知到在哪就find命令搜吧)

紫色框表明的是你給上傳的配置起的名字,能夠改

如今上傳完了,那麼咱們怎麼肯定是否上傳成功呢?去zookeeper集羣的一個目錄找到bin裏zookeeper的客戶端腳本

運行後,裏面會出現一大堆內容,若是你不指定參數,他會默認訪問localhost:2181

在最下面執行這個命令,查看在根目錄下有什麼,發現一個configs

再看它裏面有什麼?哈!

這就是咱們剛纔上傳的配置了,名字同樣的,表明上傳成功了

而後用quit命令退出

若是你須要修改配置的話,只用在剛纔那個conf目錄裏改好,改好後再上傳一次就好了,就會覆蓋原來的配置文件

第七步:修改tomcat/bin目錄下的catalina.sh 文件,關聯solr和zookeeper

如今上傳好配置文件了,但是solr和zookeeper尚未創建任何關係,他們也不知道對方在哪裏,這個時候須要修改4個tomcat的配置文件,這裏只演示tomcat01,其餘三個徹底相同照着改

打開catalina.sh文件,加一個JAVA_OPTS這個參數,初始化這個值完了會傳給solr,注意不是在這個截圖這裏修改啊

用/JAVA_OPTS搜索紅色框框裏的這句話(由於低版本加的位置長的不太同樣,但這句話的例子是不變的),在這句話下面的位置加(注意位置啊,不要弄錯了):

加上JAVA_OPTS的值(zookeeper集羣的ip列表):

JAVA_OPTS="-DzkHost=192.168.25.128:2181,192.168.25.128:2182,192.168.25.128:2183"

而後把其餘三個tomcat也一改,改的位置和內容是同樣的,不用變

這樣每一個solr實例就經過這個參數和zookeeper集羣創建了聯繫,solr會將本身的狀態發送給zookeeper,好比ip地址啊,端口號啊,zookeeper就能夠鏈接到solr了,創建了通訊關係

第八步:啓動每一個tomcat實例。要包裝zookeeper集羣是啓動狀態

如今須要啓動每一個tomcat,固然了,這個和啓動zookeeper集羣同樣,要一個一個進去啓動,太麻煩了,仍是寫個批處理腳原本運行

/usr/local/solr-cloud/tomcat01/bin/startup.sh
/usr/local/solr-cloud/tomcat02/bin/startup.sh /usr/local/solr-cloud/tomcat03/bin/startup.sh /usr/local/solr-cloud/tomcat04/bin/startup.sh

保存,退出

發現沒有運行權限,添加權限

而後運行腳本,等等啊,tomcat集羣啓動比較慢

若是你想看啓動起來沒,能夠複製一個會話窗口(我用的xshell5),去看看tomcat的日誌信息(至關於看控制檯打印信息)

用這個命令查看,我這就查看一個,應該已經啓動好了

這裏說個小知識點,tomcat8開始,默認啓動的是NIO模式,7默認啓動的是BIO模式,還能夠經過配置設置APR模式啓動,至於APR,NIO和BIO的區別,是和tomcat併發性能有關的,高併發的系統應該將tomcat的模式設置成APR模式,會大幅度的提升服務器的處理和響應性能。感興趣的能夠本身百度下。固然這個不用在乎,跟本文集羣搭建沒啥關係,就是想到了說一下。

第九步:訪問集羣

而後用本身的電腦訪問下我們的集羣吧,以前單機版是沒有紅框框出來的兩個東西的,出現這個就是OK了

我這裏還沒建立collections,因此啥都沒有:

注意下訪問地址的輸入,要寫全。訪問地址寫成這樣會404

第十步:建立新的Collection進行分片處理

點擊頁面的Collections按鈕,而後就能添加了(高版本的solr纔有,低版本的須要經過地址欄傳遞參數去設置,比較麻煩)

我這裏選擇的是名字叫mycollection1,用本身上傳的myconf配置文件,有2片shard,每一個shard有2個備份節點一主一備

而後回去看下,這樣solr集羣就搭建ok了!

第十一步:刪除不用的Collection或core

刪除collection,點這裏,而後輸入你要刪除的collection名稱就行

 刪除core在右邊,完了若是要添加下面有add replica(若是工做中你的哪一個備份機掛了,就這樣刪掉掛的服務器,再添加一個好的就行,固然了,在這裏添加前,確定是須要在服務器上部署好solr服務,而後鏈接zookeeper集羣才行的)

相關文章
相關標籤/搜索