solr集羣solrCloud的搭建 zookeeper集羣的安裝

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

1、solr實例的搭建java

1. tomcat安裝web

   這裏咱們須要4個tomcat,分別是tomcat1,2,3,4spring

  

  同時修改tomcat1,2,3,4的端口爲8080-8083。保證兩個tomcat能夠正常運行不發生端口衝突。apache

2.解壓solr-4.10.3.tar.gz壓縮包。從壓縮包中複製/solr-4.10.3/dist/solr-4.10.3.war到tomcat1,並重命名爲solr.war。tomcat

 

  

3.啓動tomcat,解壓solr.war。解壓成功後關閉tomcat,刪除solr.war服務器

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

  

5.建立solrhome文件測試

  這裏直接拷貝單機版中建立的solrhomeurl

 

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

  

 

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

 

 2、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

查看主界面

3、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(); } 

4、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的父類

相關文章
相關標籤/搜索