一、环境要求
需要使用zookeeper集群。
1、集群管理:容错、负载均衡。
2、配置文件的集中管理
3、集群的入口 需要实现 zookeeper 高可用,需要搭建zookeeper集群。建议是奇数节点。需要三个 zookeeper 服务器。
zookeeper集群搭建参考地址:zookeeper集群搭建
二、准备相关软件
solr-4.10.3.tgz
在linux中创建文件夹 /usr/local/solr-cloud 创建4个solr实例复制到相关目录下
[root@localhost ~]# mkdir /usr/local/solr-cloud [root@localhost ~]# cp -r solr-4.10.3 /usr/local/solr-cloud/solr-1 [root@localhost ~]# cp -r solr-4.10.3 /usr/local/solr-cloud/solr-2 [root@localhost ~]# cp -r solr-4.10.3 /usr/local/solr-cloud/solr-3 |
三、配置集群
1、分别修改bin下solr.in.sh文件
ZK_HOST="192.168.25.139:2181,192.168.25.139:2182,192.168.25.139:2183"
# Set the ZooKeeper client timeout (for SolrCloud mode)
ZK_CLIENT_TIMEOUT="15000"
ZK_HOST是对应已经搭建好的zookeeper集群地址。
2、让 zookeeper 统一管理配置文件。需要把 solr-4.10.3/example/solr下collection1/conf 目录上传到
zookeeper。上传任意 solr-*中的配置文件即可。collection1是我自己命名的你的可能不是。
solr给我们提供的工具上传配置文件:
solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh 上传命令如下
./zkcli.sh -zkhost 192.168.25.139:2181,192.168.25.139:2182,192.168.25.139:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solr-1/solr-4.10.3/example/solr/collection1/conf -confname myconf
参数解释
-zkhost :指定zookeeper地址列表
-cmd :指定命令。upconfig 为上传配置的命令
-confdir : 配置文件所在目录
-confname : 配置名称
四、启动集群
依次启动:先进入slor-1下的bin目录
如下图:
./solr stop -p 8983 #-p是指定端口, stop是停止服务
./solr start -c -p 8983 #-c 是以solrcloud的方式启动。搭建solrcloud必须加。不然启动成功后主界面没有cloud菜单。
可以使用 ./solr --help 查看相关参数
四、查看启动
五、分片配置
#新建一个collection2
#name:将被创建的集合的名字
#numShards:集合创建时需要创建逻辑碎片的个数
#replicationFactor:分片的副本数
http://192.168.25.139:8983/solr/admin/collections?action=CREATE&name=collection2&numShards=1&replicationFactor=3
#删除collection2
http://192.168.25.139:8983/solr/admin/collections?action=DELETE&name=collection2
效果如下:
ps:另一种启动方式大家也可以尝试
#贴出命令,这种不需要修改solr.in.sh以jar的方式启动 端口需要修改
#找到对应的start.jar
#启动会有控制台日志 建议使用nohub启动 如有问题请提出
java -DzkHost=192.168.25.139:2181,192.168.25.139:2182,192.168.25.139:2183 -DnumShards=2 -Dbootstrap_confdir=./solr/collection1/conf -Dcollection.configName=myconf -Djetty.port=8983 -jar start.jar