solr集群solrCloud的搭建


  上一章講了solr單機版的搭建,本章將講解sole集群的搭建。solr集群的搭建需要使用到zookeeper,搭建參見zookeeper集群的安裝

一、solr實例的搭建

1. tomcat安裝

   這里我們需要4個tomcat,分別是tomcat1,2,3,4

  

  同時修改tomcat1,2,3,4的端口為8080-8083。保證兩個tomcat可以正常運行不發生端口沖突。

2.解壓solr-4.10.3.tar.gz壓縮包。從壓縮包中復制/solr-4.10.3/dist/solr-4.10.3.war到tomcat1,並重命名為solr.war。

 

  

3.啟動tomcat,解壓solr.war。解壓成功后關閉tomcat,刪除solr.war

4.將solr日志相關的jar包拷貝到解壓的solr項目的lib包中

  

5.創建solrhome文件

  這里直接拷貝單機版中創建的solrhome

 

6.修改tomcat1-4中的solr的web.xml對應的env-entry-value值為/usr/local/solrcloud/solrhome1-4,指定對應的solrhome

  

 

7.其他的配置參見solr單機版的搭建

 

 二、solr集群的搭建

  1.把solrhome中的配置文件上傳到zookeeper集群。使用zookeeper的客戶端上傳。

    使用solr安裝包中的/opt/mysoft/solr-4.10.3/example/scripts/cloud-scripts中的zkcli.sh

  

  運行命令

./zkcli.sh -zkhost 192.168.198.130:2181,192.168.198.130:2182,192.168.198.130:2183 -cmd upconfig -confdir /usr/local/solrcloud/solrhome1/collection1/conf -confname myconf

 

  查看運行是否成功,使用zookeeper中的腳本

2.修改solrhome1-4下的solr.xml文件,指定當前實例運行的ip地址及端口號8080-8083。

 

3.修改每一台solr的tomcat 的 bin目錄下catalina.sh文件中加入DzkHost指定zookeeper服務器地址:

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

4.重啟tomcat

 查看運行結果

5.創建一個兩片的collection,每片是一主一備

http://192.168.198.130:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2  

回到主界面查看

6.刪除collection1

http://192.168.198.130:8080//solr/admin/collections?action=DELETE&name=collection1

查看主界面

三、java測試代碼

@Test public void testAddDocument() throws Exception { //創建一個和solr集群的連接 //參數就是zookeeper的地址列表,使用逗號分隔
        String zkHost = "192.168.198.130:2181,192.168.198.130:2182,192.168.198.130:2183"; CloudSolrServer solrServer = new CloudSolrServer(zkHost); //設置默認的collection
        solrServer.setDefaultCollection("collection2"); //創建一個文檔對象
        SolrInputDocument document = new SolrInputDocument(); //向文檔中添加域
        document.addField("id", "test001"); document.addField("item_title", "測試商品"); //把文檔添加到索引庫
 solrServer.add(document); //提交
 solrServer.commit(); } @Test public void queryDocument() throws Exception{ //創建一個和solr集群的連接 //參數就是zookeeper的地址列表,使用逗號分隔
        String zkHost = "192.168.198.130:2181,192.168.198.130:2182,192.168.198.130:2183"; CloudSolrServer solrServer = new CloudSolrServer(zkHost); //設置默認的collection
        solrServer.setDefaultCollection("collection2"); solrServer.deleteByQuery("*:*"); solrServer.commit(); } 

四、spring集成

<bean id="cloudSolrServer" class="org.apache.solr.client.solrj.impl.CloudSolrServer"> 
        <constructor-arg name="zkHost" value="192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183"></constructor-arg> 
        <property name="defaultCollection" value="collection2"></property>
</bean>

java代碼使用方法不變,因為SolrServer是CloudSolrServer的父類

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM