solr集群搭建

solrcloud介绍

SolrCloud(solr 云)是Solr提供的分布式搜索方案,支持大规模、容错、支持分布式索引和检索。它是基于solr和zookeeper的分布式搜索方案,使用zookeeper作为配置管理中心。

版本说明

本文根据业务场景,并没有使用最的版本,相关版本:solr-4.6.1、zookeeper-3.4.6。

搭建说明

一、zookeeper集群搭建(3个实例)

1. 下载zookeeper-3.4.5.tar.gz,并解压缩放在/home/server/sorlcloud/目录中,如果没有这个目录则创建。
2. cp -r zookeeper-3.4.5  zookeeper-3.4.5-2181 #最后一个数为端口号
3. cp -r zookeeper-3.4.5  zookeeper-3.4.5-2182
4. cp -r zookeeper-3.4.5  zookeeper-3.4.5-2183
5. 在每个对应的zookeeper目录中,创建data目录,并在data目录生成myid,写入值分别为1、2、3作为ID
6. cp conf/zoo_sample.cfg  conf/zoo.cfg,并修改配置文件,三个zookeeper除了data和clientPort不一样外,集群节点信息配置相同。
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
# 修改对应的data路径
dataDir=/home/server/zookeeper-3.4.5-2181/data
# the port at which the clients will connect
clientPort=2181
#集群中节点信息,包括ID, IP, 投票和选取端口
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
7. 启动zookeeper,分别进入相应的目录中,运行bin/zkServer.sh start
8. 分别检查每个zookeeper的状态,运行bin/zkServer.sh status,如果需要停止bin/zkServer.sh stop

二、solrcloud搭建

1. 下载solr-4.6.1.tgz,并解压到sorlcloud,同样复制2个节点。
2. cp -r solr-4.6.1 solr-4.6.1-8983
3. cp -r solr-4.6.1 solr-4.6.1-8984
4. 进入solr-4.6.1-8983/example/cloud-scripts/中,上传solr配置文件到zookeeper,使用如下命令
#zkhost指定zookeeper的集群的地址,多个用逗号分隔,同时可以指定子路径,只需要在其中一个上指定即可。
#solrhome必须指定,它是solr.xml文件所在目录,当然用户可以自行配置
#configname指定上传的配置文件名
./zkcli.sh -zkhost 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183/solr -cmd upconfig -confdir /home/server/solrcloud/solr-4.6.1-8983/example/solr -confname collection1
这条命令最终会在zookeeper集群的 /solr/configs目录中生成collection1配置文件,如果不指定zookeeper的子路径,默认在zookeeper的/configs目录中生成,这样很容易跟其它使用该zookeeper集群的配置冲突,建议带子路径上传。
5. 在zookeeper中,使用bin/zkCli.sh连接上zookeeper,并使用zk的命令查看配置文件是否成功上传
ls /solr/configs 正常可以看到上传的configname, 配置文件尽量不从其它地方导入zk,这样很容易出问题,后面会谈到。
6.  启动solr,根据solr的官方文档,solr有几种启动方式:1.solr默认支持使用jetty容器启动(配置最简单);2. 使用tomcat等其它容器启动;3.其它
建议使用jetty启动,网上其它博客都是使用tomcat启动,配置繁琐,而且种jar包来回拷贝,很容易出错。建议一个脚本
#!/bin/bash
LOGHOME="/home/server/solr/"
BASE_DIR=/home/server/solrcloud/solr-4.6.1-8983/example/solr
JVM_ARGS="-Xmx2g -Xms2g -XX:MaxDirectMemorySize=5g -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port="$2" -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -verbose:gc -Xloggc:"$LOGHOME"/gc.log -XX:CMSInitiatingOccupancyFraction=65 -XX:+UseCMSCompactAtFullCollection -XX:MaxTenuringThreshold=10  -XX:MaxPermSize=156M -XX:SurvivorRatio=3  -XX:NewRatio=2 -XX:+PrintGCDateStamps   -XX:+PrintGCDetails -XX:+UseParNewGC -XX:+UseConcMarkSweepGC"
ZK_SERVERS="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183/solr"
ZK_TIMEOUT=10000
SHARDS=1  #指定分片数目
JETTY_PORT=$1  #从命令行获取端口号
exec java $JVM_ARGS -Djetty.port=$1 -Dbootstrap_conf=true -DnumShards=$SHARDS -DzkHost=$ZK_SERVERS -DzkClientTimeout=$ZK_TIMEOUT -Dsolr.solr.home=$BASE_DIR -jar $BASE_DIR/start.jar

执行./start.sh  8700  8701

7. 接下来就可以访问http://localhost:8700/solr

猜你喜欢

转载自blog.csdn.net/psc928624742/article/details/77119459