1、SolrCloud集群结构
SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。其结构如下:
2、安装前提
2.1、安装zookeeper集群
见我写另一篇文章《zookeeper集群安装》,地址:https://www.jianshu.com/p/f4e8dc6fccc9
2.2、solr下载
从solr官网中下载,官网地址:https://solr.apache.org/downloads.html
solr版本:solr-7.7.3
2.3、jdk版本
安装jdk8,并且配置JAVA_HOME
2.4、主机
准备三台Linux主机安装solr节点。
主机名 | 主机ip |
---|---|
learn1 | 192.168.31.200 |
learn2 | 192.168.31.201 |
learn3 | 192.168.31.202 |
3、solr安装
在三台主机上安装solr。
3.1、solr上传并解压
上传到主机/home/wentian/app/solr目录
$ cd /home/wentian/app/solr
$ tar -zxvf solr-7.7.3.tgz
3.2、创建solr软连接
$ cd /home/wentian/app/solr
$ ln -s solr-7.7.3 solr7
最终安装结果如下:
注:通过软连接方式安装,将solr安装包与solr索引数据分离开来。这样将来如果需要升级solr版本,则直接将solr软连接符号重建指向新版solr即可。
4、solr节点部署
三台主机上都要部署solr节点
4.1、创建solr节点目录
$ mkdir -p /home/wentian/solr/solrcloud/node/solr
$ mkdir -p /home/wentian/solr/solrcloud/node/logs
$ mkdir -p /home/wentian/solr/solrcloud/node/data
$ mkdir -p /home/wentian/solr/solrcloud/node/sh
目录说明:
solr --- SOLR_HOME目录
logs --- 日志目录
data --- 索引文件目录
sh --- 脚本目录
4.2、拷贝配置文件
#拷贝solr.xml
$ cp /home/wentian/app/solr/solr7/server/solr/solr.xml /home/wentian/solr/solrcloud/node/solr
#拷贝solr.in.sh
$ cp /home/wentian/app/solr/solr7/bin/solr.in.sh /home/wentian/solr/solrcloud/node/solr
4.3、修改solr.in.sh
#进程id目录文件
SOLR_PID_DIR=/home/wentian/solr/solrcloud/node/solr
#索引文件目录
SOLR_DATA_HOME=/home/wentian/solr/solrcloud/node/data
#日志目录
SOLR_LOGS_DIR=/home/wentian/solr/solrcloud/node/logs
#JVM配置
SOLR_JAVA_MEM="-Xms1024m -Xmx1024m"
#时区,solr使用的是UTC时间,中国需要加8个时区。
SOLR_TIMEZONE="UTC+8"
#提交间隔配置,这是对该节点总的配置
#autoCommit,硬提交,即提交到磁盘
#autoSoftCommit,软提交,即不会写到磁盘,但是可以查询到
#maxTime,单位毫秒
SOLR_OPTS="$SOLR_OPTS -Dsolr.autoSoftCommit.maxTime=3000"
SOLR_OPTS="$SOLR_OPTS -Dsolr.autoCommit.maxTime=60000"
SOLR_OPTS="$SOLR_OPTS -Dsolr.autoCommit.maxDocs=10000"
#添加进程名target
SOLR_OPTS="$SOLR_OPTS -Dtarget=solr_node"
4.4、启停脚本
(1)启动脚本
/home/wentian/solr/solrcloud/node/sh/start.sh
export JAVA_HOME=/home/wentian/app/java/jdk8
export SOLR_NODE_HOME=/home/wentian/solr/solrcloud/node
export SOLR_INCLUDE=${SOLR_NODE_HOME}/solr/solr.in.sh
PORT=18801
ZK_HOST=192.168.31.200:2181,192.168.31.201:2181,192.168.31.202:2181/solr
/home/wentian/app/solr/solr7/bin/solr restart -cloud -s ${SOLR_NODE_HOME}/solr -p ${PORT} -z ${ZK_HOST}
-cloud:是以cloud模式启动
-s :指定solr节点的SOLR_HOME
-p : 指定solr节点启动的端口
-z :zookeeper集群地址
注:这里ZK_HOST尾部加上/solr,是为了将该solr集群相关配置文件等全部保存到zookeeper的/solr节点下,便于查找配置等。
(2)停止脚本
/home/wentian/solr/solrcloud/node/sh/stop.sh
export JAVA_HOME=/home/wentian/app/java/jdk8
export SOLR_NODE_HOME=/home/wentian/solr/solrcloud/node
export SOLR_INCLUDE=${SOLR_NODE_HOME}/solr/solr.in.sh
PORT=18801
/home/wentian/app/solr/solr7/bin/solr stop -p ${PORT}
4.5、zookeeper创建节点
solr不会自动创建/solr节点,因此需要在启动SolrCloud前,登录zookeeper集群创建永久节点/solr
create /solr "solr"
5、启动solr
依次启动三台主机的solr节点。
访问任一solr节点,如:http://192.168.31.200:18801/
至此,三个节点的SolrCloud集群就搭建完成了。后续再介绍SolrCloud下索引增删改查。