solr最小集群的搭建

-#solr最小集群搭建

前言

最近公司想用solr集群,虽然以前没搭过也得试试,毕竟面向百度编程嘛。从最小集群开始
由于本人shell命令缺乏,习惯使用xshell与xftp

<!--  本教程默认各位已经搭建完毕了单机版solr与zookeeper并成功运行  -->
<!--  对于搭建单机版solr有疑问可以戳[这里](http://blog.csdn.net/x631617479/article/details/54232758%20%E8%BF%99%E9%87%8C)  -->
<!-- 对于搭建zookeeper有疑问的百度去,有时间再写一份它的教程 -->

环境配置

  • centos 7.x
  • tomcat7
  • solr 4.10.4
  • zookeeper 3.4.6

最小集群结构图

搭建流程

1 复制出一份solr服务

没啥说的,就把之前的单机版solr复制一份改个名字即可

2 修改tomcat端口号

打开tomcat/conf/server.xml修改端口号为18901另一台为18902

3 修改web.xml

和搭建单机版solr时一样,修改/tomcat/wtwebapps/solr/WEB-INF/web.xml
将其中

 <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/tomcat7/solr-tomcat/wtwebapps/solr_home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

env-entry-value的值设置为solrHome的路径目的是问了让solr服务器可以找到solrhome 的位置
另一台也如此
单机版能运行的可忽略此步

4 修改solr.xml

打开/solrhome/solr.xml修改其中

<solrcloud>
    <str name="host">此处填写当前solrhome对应的服务器ip地址</str>
    <int name="hostPort">端口号</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
  </solrcloud>

两台均如此修改,注意ip地址与端口号不要写错

5 修改catalina.sh

打开/tomcan/catalina.sh
找到参数 JAVA_OPTS 在空格后面添加
-DzkHost=192.168.1.155:2181
也就是zookeeper的ip地址:端口号
这样在启动时solr与zookeeper的关系就可以建立了

6 上传solrhome配置文件

在这里需要用到solr官网下载来的一个插件,查了很多教程都没有告知上传到zookeeper的脚本的由来,文件在文末给出
进入目录solr-4.10.3/example/scripts/cloud-scripts/
执行脚本
./zkcli.sh -zkhost zookeeperIP:port -cmd upconfig -confdir solrHome_path/core1/conf -confname core_name
这里应该解释一下,也是我踩得坑。在-confdir 后面跟的solrhome中core的conf路径,并且在-confname后面跟的是core的名字
这里如果出错在启动solr的时候会报找不到配置文件
如果有多个core要一一执行脚本上传,两台服务器只需上传其中一台的配置即可,主从是一致的

如果要更换zookeeper的一份配置文件只需重新上传,文件名一致即可

如果要删除zookeeper中的solr配置文件需要删除以下文件
- clusterstate.json
- aliases.json
- live_nodes
- overseer
- overseer_elect
- collections
- configs文件夹下的所有配置

这个脚本上传好像在遇到大文件时会报错,之前有一个3M的字典在里面无法上传,请注意

7 查看zookeeper中是否存在配置文件

进入/zookeeper-3.4.6/bin目录下执行
./zkCli.sh -server localhost:2181
看到
这里写图片描述
就进入了zookeeper配置区

执行语句ls /configs 就可以看到刚才上传的core_conf,至此配置就完成

8 启动两台solr服务器

根据我的经验,启动服务器时加载的配置文件是zookeeper下的,所以一定要保证zookeeper下的配置文件无误,如果更改了core中的配置,可用6中的方式再次上传

启动成功查看
这里写图片描述

一个问题

我的集群在插入数据时如果使用pojo类插入遇到BigDecimal格式的数据就会报错,根据资料没查到好的解决办法,官方论坛中也有此问题尚未解决

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值