SolrCloud 高可用集群搭建(4)

cd solr/tomcat/webapps/
cp solr -r ../../../solrcloud/tomcat1/webapps/
cp solr -r ../../../solrcloud/tomcat2/webapps/
cp solr -r ../../../solrcloud/tomcat3/webapps/
cp solr -r ../../../solrcloud/tomcat4/webapps/

第六步:拷贝单机版的solrhome。修改每个web.xml指定solrhome的位置。

cd /usr/local/solr/
cp -r solrhome/ ../solrcloud/solrhome1
cp -r solrhome/ ../solrcloud/solrhome2
cp -r solrhome/ ../solrcloud/solrhome3
cp -r solrhome/ ../solrcloud/solrhome4

vim tomcat1/webapps/solr/WEB-INF/web.xml
vim tomcat2/webapps/solr/WEB-INF/web.xml
vim tomcat3/webapps/solr/WEB-INF/web.xml
vim tomcat4/webapps/solr/WEB-INF/web.xml
分别修改路径为
/usr/local/solrcloud/solrhome1
/usr/local/solrcloud/solrhome2
/usr/local/solrcloud/solrhome3
/usr/local/solrcloud/solrhome4

1.6 solr集群的搭建 1.6.1 第一步

solrhome中的配置文件上传到zookeeper集群。使用zookeeper的客户端上传。

进入客户端命令位置:cd /root/solr-4.10.3/example/scripts/cloud-scripts

SolrCloud 高可用集群搭建

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

 

查看配置文件是否上传成功:

[root@bogon bin]# cd /usr/local/solrcloud/zookeeper1/bin/

[root@bogon bin]# ./zkCli.sh

Connecting to localhost:2181

[zk: localhost:2181(CONNECTED) 0] ls /

[configs, zookeeper]

[zk: localhost:2181(CONNECTED) 1] ls /configs

[myconf]

[zk: localhost:2181(CONNECTED) 2] ls /configs/myconf

[admin-extra.menu-top.html, currency.xml, protwords.txt, mapping-FoldToASCII.txt, _schema_analysis_synonyms_english.json, _rest_managed.json, solrconfig.xml, _schema_analysis_stopwords_english.json, stopwords.txt, lang, spellings.txt, mapping-ISOLatin1Accent.txt, admin-extra.html, xslt, synonyms.txt, scripts.conf, update-script.js, velocity, elevate.xml, admin-extra.menu-bottom.html, clustering, schema.xml]

[zk: localhost:2181(CONNECTED) 3]

1.6.2 第二步

修改solrhome下的solr.xml文件,指定当前实例运行的ip地址及端口号。

vim /usr/local/solrcloud/solrhome1/solr.xml

vim /usr/local/solrcloud/solrhome2/solr.xml

vim /usr/local/solrcloud/solrhome3/solr.xml

vim /usr/local/solrcloud/solrhome4/solr.xml

修改host和prot从8080到8083

SolrCloud 高可用集群搭建

1.6.3 第三步

修改每一台solrtomcat bin目录下catalina.sh文件中加��DzkHost指定zookeeper服务器地址: 

vim /usr/local/solrcloud/tomcat1/bin/catalina.sh
vim /usr/local/solrcloud/tomcat2/bin/catalina.sh
vim /usr/local/solrcloud/tomcat3/bin/catalina.sh
vim /usr/local/solrcloud/tomcat4/bin/catalina.sh

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

(可以使用vim的查找功能查找到JAVA_OPTS的定义的位置,然后添加)

1.6.4 第四步

重新启动tomcat

如果觉得一个个启动tomcat麻烦可以编写脚本一键启动 如下:
vim /usr/local/solrcloud/startall.sh
编写内容:
/usr/local/solrcloud/tomcat1/bin/startup.sh
/usr/local/solrcloud/tomcat2/bin/startup.sh
/usr/local/solrcloud/tomcat3/bin/startup.sh
/usr/local/solrcloud/tomcat4/bin/startup.sh

加权限:
chmod +x /usr/local/solrcloud/startall.sh

执行脚本:/usr/local/solrcloud/startupall.sh

一键关闭同理。

SolrCloud 高可用集群搭建

一个主节点多个备份节点,集群只有一片。

1.6.5 第五步

创建一个两片的collection,每片是一主一备。

在浏览器地址栏使用以下命令创建:

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

SolrCloud 高可用集群搭建

SolrCloud 高可用集群搭建

1.6.6 第六步

删除collection1.

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

SolrCloud 高可用集群搭建

SolrCloud 高可用集群搭建

 

Solr集群的使用

使用solrj操作集群环境的索引库。

2.1 Solrj测试

public class SolrCloudTest {

@Test

public void testAddDocument() throws Exception {

//创建一个和solr集群的连接

//参数就是zookeeper的地址列表,使用逗号分隔

String zkHost = "192.168.25.154:2181,192.168.25.154:2182,192.168.25.154: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 deleteDocument() throws SolrServerException, IOException {

//创建一个和solr集群的连接

//参数就是zookeeper的地址列表,使用逗号分隔

String zkHost = "192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183";

CloudSolrServer solrServer = new CloudSolrServer(zkHost);

//设置默认的collection

solrServer.setDefaultCollection("collection2");

solrServer.deleteByQuery("*:*");

solrServer.commit();

}

}

 
2.2 Solrjspring集成

修改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>

 

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ce2348e31acbad324b528cf709de237c.html