三、solr集群搭建

原文地址,转载请注明出处:http://blog.csdn.net/qq_34021712/article/details/71079911   ©王赛超

前提条件
solr单机版搭建:http://blog.csdn.net/qq_34021712/article/details/70596602

zookeeper集群搭建:http://blog.csdn.net/qq_34021712/article/details/70843131


搭建过程
1.在usr/local目录下创建solr-cloud文件夹

2.将之前搭建单机solr中的tomcat复制四份到到solr-cloud目录下,如果是在同一个服务器下,修改其端口号避免冲突,主要是修改以下几个地方,让它们都加1就行

<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

3.将之前搭建单机solr中的solrhome复制四份到solr-cloud文件夹目录下,然后修改上面每一个tomcat中solr项目的web.xml关联对应的solrhome

<env-entry>
     <env-entry-name>solr/home</env-entry-name>
     <env-entry-value>/usr/local/solr-cloud/solrhome01</env-entry-value>
     <env-entry-type>java.lang.String</env-entry-type>
</env-entry>
4.修改每一个solrhome下的solr.xml文件。修改host、hostPort两个属性。分别是对应的tomcat的ip及端口号。


5.把配置文件上传到zookeeper。需要使用solr压缩目录下的zkcli.sh脚本 对应路径为solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh
#把/usr/local/solr-cloud/solrhome01/collection1/conf目录上传到zookeeper。需要zookeeper集群已经启动。
./zkcli.sh -zkhost 192.168.17.168:2181,192.168.17.168:2182,192.168.17.168:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf

在使用zkcli.sh时报./zkcli.sh: line 13: unzip: command not found
Error: Could not find or load main class org.apache.solr.cloud.ZkCLI错误,进入solr解压缩目录solr-4.10.3/example下运行

java -jar start.jar命令


6.使用zookeeper的zkCli.sh命令查看是否上传成功



7.告诉solr实例zookeeper的位置。需要修改tomcat的catalina.sh添加以下内容

#每个tomcat节点都需要添加
JAVA_OPTS="-DzkHost=192.168.17.168:2181,192.168.17.168:2182,192.168.17.168:2183"
8.启动每个solr实例。


9.将集群分为两片,每片两个副本。在浏览器访问solr服务的地址后面加上这些参数

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


10删除不用的collection1
http://192.168.17.168:8080/solr/admin/collections?action=DELETE&name=collection1



11.Solrj测试

@Test
public void testSolrClout() throws Exception {
	//创建一个SolrServer对象
	CloudSolrServer solrServer = new CloudSolrServer("192.168.17.168:2181,192.168.17.168:2182,192.168.17.168:2183");
	//设置默认的collection,上面已经分片,并且把collection1删除了,所以这里链接collection2
	solrServer.setDefaultCollection("collection2");
	//创建一个文档对象
	SolrInputDocument document = new SolrInputDocument();
	document.addField("id", "1");
	document.addField("name", "张三");
	//添加文档
	solrServer.add(document);
	//提交
	solrServer.commit();
		
}
12.在Spring中集群的配置

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


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值