溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

windows solrcloud偽分布式如何搭建

發(fā)布時間:2021-11-18 16:57:29 來源:億速云 閱讀:164 作者:小新 欄目:云計算

這篇文章將為大家詳細講解有關(guān)windows  solrcloud偽分布式如何搭建,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一 、概述

    最近幾個月裝了好幾次windows solrcloud偽分布式,參考了其他博客,我自己也總結(jié)了一下,包含一些注意和一些錯誤的解決方法。

二、環(huán)境

    系統(tǒng):windows server 2008 64位
    軟件:jdk-7u80-windows-x64、apache-tomcat-7.0.70、solr-4.10.3、zookeeper-3.4.6
    注意:不同版本的solr配置不一樣。

三、部署步驟

    一臺服務(wù)器部署3個節(jié)點。

3.1單機版Tomcat+Solr

    第一步:在D盤根目錄下建立solrCloud目錄。并把apache-tomcat-7.0.70.tar.gz解壓到SolrCloud目錄下,重命名為tomcat-server_1。把solr-4.10.3.zip解壓,并把solr-4.10.3/example/solr目錄下的solr文件夾復(fù)制到SolrCloud目錄下,重命名為solr_home_1。如下圖:

windows  solrcloud偽分布式如何搭建

    第二步:把solr-4.10.3\example\webapps\solr.war復(fù)制到tomcat-server_1/webapps目錄下。

    第三步:修改D:\solrCloud\tomcat-server_1\bin目錄下的catalina.bat文件,里面加入tomcat的啟動參數(shù),,參數(shù)如下:

    set JAVA_OPTS=-Dsolr.solr.home=D:/SolrCloud/solr_home_1

    配置solr/home的第二種方法,在D:\SolrCloud\tomcat-server_1\webapps\solr\WEB-INF\web.xml中配置:

   <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>D:\\SolrCloud\\solr_home_1</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

     關(guān)于solr/home的設(shè)置,其實有三種方法:1、在solr的web.xml中設(shè)置,在tomcat啟動時附帶參數(shù),還有就是本文的方法。

     第二種方法,必須首先啟動,tomcat,然后solr.war解壓后才能找到solr\WEB-INF

    第四步:如果solr版本小于4.3,此時單機solr版本就可以啟動了,但是我們是4.10.3。啟動 tomcat-server_1 ,發(fā)現(xiàn)是會報錯,此時你會發(fā)現(xiàn)D:\SolrCloud\tomcat-server_1\webapps\solr.war被解壓成solr文件目錄。此處可以刪除 D:\SolrCloud\tomcat-server_1\webapps\solr.war,也可以不刪除,我建議刪除。

    第五步:把solr-4.10.3\solr-4.10.3\example\lib\ext下面所有jar包拷貝到,D:\SolrCloud\tomcat-server_1\webapps\solr\WEB-INF\lib目錄

windows  solrcloud偽分布式如何搭建

    第六步:在D:\SolrCloud\tomcat-server_1\webapps\solr\WEB-INF創(chuàng)建classes目錄,將\solr-4.10.3\example\resources目錄下的log4j.properties文件拷貝剛剛建立的classes文件下,并且修改第16行:

        log4j.appender.file.File=../solr_logs/solr.log

       注意:日志路徑是自己制定的。

    第七步:啟動tomcat,并在瀏覽器中輸入:http://localhost:8080/solr/ 驗證是否配置成功。如果配置成功,瀏覽器的頁面如下:

windows  solrcloud偽分布式如何搭建

3.2配置多Tomcat+solr同時運行

    第一步:把tomcat-server_1復(fù)制2份,分別命名tomcat-server_2,tomcat-server_3;把solr_home_1復(fù)制2份,分別命名solr_home_2,solr_home_3。,目錄如下:

windows  solrcloud偽分布式如何搭建

    第二步:為了三個tomcat能夠在一臺機器上同時啟動,需要修改tomcat的端口信息,即修改 修改位置在D:\solrCloud\tomcat-server_*\conf\server.xml里面的參數(shù),修改方案如下:

                           shutdown port HTTP/1.1 PortAJP/1.3  port
tomcat-server_1800580808009
tomcat-server_2801580818019
tomcat-server_3802580828029

    第三步:修改各個tomcat服務(wù)器catalina.bat文件里面的solrhome

    tomcat-server_2修改成set JAVA_OPTS=-Dsolr.solr.home=D:/solrCloud/solr_home_2
    tomcat-server_3修改成set JAVA_OPTS=-Dsolr.solr.home=D:/solrCloud/solr_home_3

    第四步:驗證修改是否成功,依次啟動三個Tomcat。并在瀏覽器輸入如下的URL:

    http://localhost:8080/solr/
    http://localhost:8081/solr/
    http://localhost:8082/solr/

    如果都能正常訪問到solr的admin頁面,那么說明配置是成功的。否則就需要檢查哪里錯了或者遺漏了。

3.3 配置ZooKeeper集群

    這部分的內(nèi)容與前面tomcat+solr是沒有關(guān)聯(lián)的。
    第一步:解壓zookeeper-3.4.6.tar.gz到D:/solrCloud目錄,重命名為zk-server_1。
    第二步:把D:\solrCloud\zk-server_1\conf\目錄下的zoo_sample.cfg修改為zoo.cfg。并寫入如下的配置參數(shù):

tickTime=2000
initLimit=5
syncLimit=2
dataDir=D:/SolrCloud/zk-server_1/data
clientPort=2181
dataLogDir=D:/SolrCloud/zk-server_1/logs
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

    并且按照配置創(chuàng)建相應(yīng)的data和logs目錄。如果不不創(chuàng)建目錄是無法正常啟動的。在data目錄中創(chuàng)建文件myid(不需要后綴名),在myid文件中寫入數(shù)字1并保存退出。

    第三步:把zk-server_1復(fù)制2份,分別命名為zk-server_2、zk-server_3。然后修改各個zk-server的conf目錄下zoo.cfg的dataDir和dataLogDir和clientPort。修改方案如下:

 dataDirdataLogDirclientPort
zk-server_1/conf/zoo.cfgD:/solrCloud/zk-server_1/dataD:/solrCloud/zk-server_1/logs2181
zk-server_2/conf/zoo.cfgD:/solrCloud/zk-server_2/dataD:/solrCloud/zk-server_2/logs2182
zk-server_3/conf/zoo.cfgD:/solrCloud/zk-server_3/dataD:/solrCloud/zk-server_3/logs2183

    并且修改每個data目錄下的myid文件中的內(nèi)容。zk-server_1是1, zk-server_2是2,zk-server_3是3 。

    第四步:啟動三個zk-server(D:\SolrCloud\zk-server_*\bin\zkServer.cmd)。并驗證是否配置成功。注意:連接第一臺時有異常信息,不用管,等都連接起來就沒有異常了。

3.4 配置Tomcat+solr+zookeeper集群

前面tomcat+solr能夠啟動和訪問了,而且zookeeper也能啟動和訪問了。接下來就需要把他們關(guān)聯(lián)起來。

    第一步:修改solr_home_*的solr.xml配置信息,把hostPort分別修改成對應(yīng)的tomcat端口。

    solr_home_1/solr.xml

windows  solrcloud偽分布式如何搭建

solr_home_2/solr.xml
<int name="hostPort">${jetty.port:8081}</int>

solr_home_3/solr.xml
<int name="hostPort">${jetty.port:8082}</int>

    第二步:修改tomcat-server_*中的catalina.bat的參數(shù)信息。

tomcat-server_1參數(shù)信息如下:
set JAVA_OPTS=-Dsolr.solr.home=D:/solrCloud/solr_home_1 -Dbootstrap_confdir=D:/solrCloud/solr_home_1/collection1/conf -Dcollection.configName=myconf -DnumShards=3 -DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183


tomcat-server_2的參數(shù)信息如下:
set JAVA_OPTS=-Dsolr.solr.home=D:/solrCloud/solr_home_2 -DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

tomcat-server_3的參數(shù)信息如下:
set JAVA_OPTS=-Dsolr.solr.home=D:/solrCloud/solr_home_3 -DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

參數(shù)解釋:-DnumShards=3  表示 3個分片,由于3個節(jié)點,系統(tǒng)默認會一個節(jié)點一個分片。

第三步:由于zookeeper已經(jīng)啟動,先tomcat-server_1,后啟動其它的tomcat-server。啟動完成后,在瀏覽器中輸入:
http://localhost:8080/solr/#/~cloud
http://localhost:8081/solr/#/~cloud
http://localhost:8082/solr/#/~cloud

如下圖:

windows  solrcloud偽分布式如何搭建

注意:在第三步中,第一次啟動tomcat集群模式時候,必須先tomcat-server_1,后啟動其它的tomcat-server,這里我經(jīng)過多次測試過。由于tomcat-server_1中有DnumShards=3的參數(shù),集群會知道這個collection需要分為3個shard,如果先啟動其他tomcat-server,最后啟動tomcat-server_1,集群會默認collection只是一個shard做3個備份。

3.5:報錯處理

由于我這個步驟是參考別的博文的,所以遇到了一個錯誤,只要tomcat配置上zookeeper,就不能啟動,單機就能啟動,大概提示錯誤如下:org.apache.solr.common.SolrException: Could not load config for solrconfig.xml

窗口報次信息的前一行提示一個錯誤,大概意思是:shard1已經(jīng)注冊過了

原因:由于我們安裝的時候不停的啟動tomcat,zookeeper,且有修改tomcat的啟動文件,導(dǎo)致zookeeper已經(jīng)記錄了shard1信息,tomcat-server_*啟動時候又去注冊。

解決方法:清空如下目錄
            D:\SolrCloud\zk-server_1\data\version-2
            D:\SolrCloud\zk-server_2\data\version-2
            D:\SolrCloud\zk-server_3\data\version-2

然后重新啟動zookeeper,重啟動tomcat就好了。

如何避免這個錯誤:這個錯誤真正的導(dǎo)致原因是 tomcat-server_1參數(shù) 測配置
set JAVA_OPTS=-Dsolr.solr.home=D:/solrCloud/solr_home_1 -Dbootstrap_confdir=D:/solrCloud/solr_home_1/collection1/conf -Dcollection.configName=myconf -DnumShards=3 -DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

如果我們配置的時候不配置紅色部分,可以自己創(chuàng)建collection

 http://localhost:8080/solr/admin/collections?action=CREATE&name= collection 1&numShards=3

關(guān)于“windows  solrcloud偽分布式如何搭建”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI