1. 程式人生 > >(偽分散式)zookeeper+solr搭建叢集(2)

(偽分散式)zookeeper+solr搭建叢集(2)

二:搭建solr叢集並測試(技術版本:jdk1.8.0_144,apache-tomcat-8.5.23,solr-7.0.0)

1.首先搭建4個tomcat和,修改下面的埠(8080~8083)

2.向每個tomcat部署各solr並配置solrHome


3.在每個solrHome檔案下面編輯solr.xml

(其中host配置ip,hostPort配置每個solr自身的tomcat埠)


4.把配置檔案上傳到zookeeper,需要到solr-7.0.0/server/scripts/cloud-scripts使用zkcli.sh上傳,如:

這個以一個core為例,想把coreName為core裡的conf配置檔案上傳到上面去

./zkcli.sh -zkhost 192.168.1.103:2181,192.168.1.103:2182,192.168.1.103:2183 -cmd upconfig -confdir /www/solrHome1/core/conf -confname myconf


5.檢視zookeeper裡面是否有這個檔案

隨便去個zookeeper檔案中的bin檔案下面有個zkCli.sh,執行./zkCli.sh

,然後就能檢視裡面的檔案是否有我們上傳了的




6.現在去每個tomcat目錄下面bin資料夾編輯catalina.sh加上

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

7.啟動每個tomcat


8.可能這個叢集不是你collection1不是你們想要的,那就重新建立個

http://192.168.1.103:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=1&replicationFactor=4

也可以手動編輯建立



9.如果collection2不是想要的也能刪除

http://192.168.1.103:8080/solr/admin/collections?action=DELETE&name=collection2

也可以手動刪除



10.現在寫個測試類,首先jar包至少是solr7.0.0版本(小編被這個坑了一晚上)

public class Solrtest {
    public static void main(String[] args) throws Exception {
	String str = "192.168.1.103:2181,192.168.1.103:2182,192.168.1.103:2183";
        CloudSolrClient solrServer = new CloudSolrClient.Builder().withZkHost(str).build();


        //設定預設的collection
        solrServer.setDefaultCollection("collection1");

        //建立一個文件物件
        SolrInputDocument document = new SolrInputDocument();
        document.addField("id", "test01");
        document.addField("item_title", "title1");
        //新增文件
        solrServer.add(document);
        //提交
        solrServer.commit();
	}
}