安裝配置apache-solr(使用apache-tomcat容器)


1.安裝配置tomcat:

2.訪問一下,看tomcat有沒安裝配置成功如果成功的話開始配置solr服務器(企業應用搜索服務器):

tar fvxz solr-4.8.1.tgz

拷貝solr.war到tomcat目錄:

cp -fr  solr-4.8.1/example/webapps/solr.war /app01/tomcat-8.0.8/webapps/


創建solr主目錄並拷貝文件

mkdir /app01/tomcat-8.0.8/solrhome

cp -a solr-4.8.1/example/solr/* /app01/tomcat-8.0.8/solrhome/


配置solr home 有三種方法可以配置solr home,任選一種即可: 1,直接修改JAVA全局環境變量:(適用於該機器只有一個Solr實例):

1.第一種:

wKiom1MpY5OCHi9ZAAAvlUQe7j0152.jpg

2.修改TOMCAT_HOME/bin/catalina.sh,在文件開頭添加:JAVA_OPTS=’-Dsolr.solr.home=/usr/local/solr’;

wKiom1MpZCCz_qnOAABn36HuF68671.jpg

3.創建solr.xml文件放於TOMCAT_HOME/conf/Catalina/localhost,內容如下: 可能會目錄不存在,其實啓動一下tomcat,目錄就會有了,也可以自己創建:

vi /app01/tomcat-8.0.8/conf/Catalina/localhost/solr.xml

<?xml version="1.0" encoding="utf-8"?>

<Context docBase="TOMCAT_HOME/webapps/solr.war"  debug="0" crossContext="true" >

    <Environment name="solr/home" type="java.lang.String" value="/app01/tomcat-8.0.8/solrhome" override="true" />

</Context>

我一般使用第三種方式 其實安裝solr最主要的就是配置solr home,配置好之後,就可以啓動tomcat了

可能會無法訪問,4.4需要拷貝一些solr的jar文件過去:

wKioL1MpZJbg6elDAACw8dReoAE407.jpg

再重啓一下tomcat訪問應該就正常了 訪問測試 :

wKiom1OefrPTa__NAAL9RjQQZb8279.jpg

下面開始做solr的主從:

master服務器的配置:


<requestHandler name=“/replication” class=“solr.ReplicationHandler” >    

    <lst name=“master”>  

      <!– 執行commit操作後進行replicate操作同樣的設置’startup’, ‘commit’, ‘optimize–>  

      <str name=“replicateAfter”>commit</str>  

      <!– 執行startup操作後進行replicate操作–>  

      <str name=“replicateAfter”>startup</str>  

      <!– 複製索引時也同步以下配置文件–>  

      <str name=“confFiles”>schema.xml,stopwords.txt</str>    

      <!– 驗證信息, 由用戶自定義用戶名–>  

      <str name=“httpBasicAuthUser”>jacoxu</str>  

      <!– 驗證信息, 由用戶自定義密碼–>  

      <str name=“httpBasicAuthPassword”>123</str>  

    </lst>  

</requestHandler>


slave服務器的配置:


<requestHandler name=“/replication” class=“solr.ReplicationHandler” >    

    <lst name=“slave”>  

       <!– 主服務器的URL, 對於多核同步配置,一一對應即可–>  

      <str name=“masterUrl”>http://127.0.0.1:8080/solr/core0</str>  

      <!– 60秒進行一次同步操作–>  

      <str name=“pollInterval”>00:00:60</str>  

      <!– 壓縮機制,來傳輸索引, 可選internal|external, internal內網, external外網–>  

      <str name=“compression”>internal</str>  

      <!– 設置超時時間–>  

      <str name=“httpConnTimeout”>50000</str>    

      <str name=“httpReadTimeout”>500000</str>    

      <!– 驗證信息, 要與master服務ser器匹配–>  

      <str name=“httpBasicAuthUser”>jacoxu</str>    

      <str name=“httpBasicAuthPassword”>123</str>    

    </lst>  

</requestHandler>  

SOLR複製模式,是一種在分佈式環境下用於同步主從服務器的一種實現方式,因之前提到的基於rsync的SOLR不同方式部署成本過高,被SOLR1.4版本所替換,取而代之的就是基於HTTP協議的索引文件傳輸機制,該方式部署簡單,只需配置一個文件即可。以下講解具體操作步驟:

步驟分主服務器和從服務器,允許有多個從服務器,即從服務器的配置一樣。


主服務器:

在solrConfig.xml中:

Xml代碼  收藏代碼

<requestHandler name="/replication" class="solr.ReplicationHandler">  

        <lst name="master">  

                <str name="replicateAfter">commit</str>  

                <str name="confFiles">schema.xml,solrconfig_slave.xml:solrconfig.xml</str>  

                <str name="commitReserveDuration">00:01:00</str>  

        </lst>  

</requestHandler>  


說明:

replicateAfter : SOLR會自行在以下操作行爲發生後執行復制: 'commit', 'startup' 'optimize',這裏我們選擇commit , 即SOLR每一次接受到commit請求後,會執行復制策略。

confFiles : 待分發的配置文件,solr 也會將主服務器上的字段配置文件:schema.xml和stopwords.txt,固排文件: elevate.xml同步到輔服務器上。

commitReserveDuration: 每次commit之後,保留增量索引的週期時間,這裏設置爲5分鐘。




從服務器:


<requestHandler name="/replication" class="solr.ReplicationHandler">  

   <lst name="slave">  

       <str name="masterUrl">http://192.168.172.2:7100/solr/${solr.core.name}/replication</str>  

       <str name="pollInterval">00:08:00</str>  

       <!-- external 很容易有索引大小不對, 壓縮文件損壞這2個問題, 導致複製無法進行, 且一直複製失敗, 測試下來internal沒任何問題 -->  

       <str name="compression">internal</str>  

       <str name="httpConnTimeout">1000</str>  

       <str name="httpReadTimeout">2000</str>  

   </lst>  

</requestHandler>  


說明:

masterUrl : 主服務器同步URL地址

pollInterval:從服務器同步間隔,即每隔多長時間同步一次主服務器

httpConnTimeout:設置連接超時(單位:毫秒)

httpReadTimeout:如果設置同步索引文件過大,則應適當提高此值。(單位:毫秒)

httpBasicAuthUser:驗證用戶名,需要和主服務器一致

httpBasicAuthPassword:驗證密碼,需和主服務器一致

compression:external or internal 使用SOLR自己的壓縮算法或應用容器的


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章