(偽分散式)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();
}
}