Solr6.2.0 + zookeeper 集群搭建

Solr6.2.0 + zookeeper 集群搭建


一、安装包准备

jdk版本:jdk-8u172-linux-x64.tar.gz 
solr版本:solr-6.2.0.tgz 
zookeeper版本:zookeeper-3.4.6.2.6.4.0-91.jar 
tomcat版本:apache-tomcat-8.5.46.tar.gz

二、IP地址规划

jdk : 192.168.12.21 ~ 192.168.12.23

solr : 192.168.12.21 ~ 192.168.12.23

zookeeper : 192.168.12.21 ~ 192.168.12.23

tomcat : 192.168.12.21 ~ 192.168.12.23

三、安装目录规划

jdk : 省略 
zookeeper : 省略 
solr : /usr/local/src/solrcloud 
                            |_________solr (Solr安装目录) 
                            |_________solr-config (solr配置文件目录) 
                            |_________solr-cores (solr数据文件目录) 
Tomcat : /usr/local/src/tomcat (此处tomcat为apache-tomcat-8.5.46.tar.gz解压后的名称)

四、基础环境安装

jdk安装 : 省略 
zookeeper安装 : 省略 
Tomcat安装 : 省略

五、solr集群安装

1、先在192.168.12.21服务器上安装

a)  解压 solr-6.2.0.tgz ,并把solr.war解压到/usr/local/src/solrcloud/solr 目录下

tar -zxvf solr-6.2.0.tgz mv /usr/local/src/solrcloud/solr-6.2.0/server/solr-webapp/webapp /usr/local/src/solrcloud/solr

b)  将 solr-6.2.0/server/lib/ext/ 目录下的jar包拷贝到 /usr/local/src/solrcloud/solr/WEB-INF/lib/ 目录下

cp -r /usr/local/src/solrcloud/solr-6.2.0/server/lib/ext/*.jar /usr/local/src/solrcloud/solr/WEB-INF/lib/

c)  将 solr-6.2.0/server/solr/configsets/basic_configs/conf/ 目录下的文件拷贝到 /usr/local/src/solrcloud/solr-config/

cp -r /usr/local/src/solrcloud/solr-6.2.0/server/solr/configsets/basic_configs/conf/* /usr/local/src/solrcloud/solr-config/

d)  将 solr-6.2.0/example/files/conf/ 目录下的文件夹拷贝到 /usr/local/src/solrcloud/solr-config/

cp -r /usr/local/src/solrcloud/solr-6.2.0/example/files/conf/lang /usr/local/src/solrcloud/solr-config/

e)  将 /usr/local/src/solrcloud/solr 目录拷贝到 /usr/local/src/tomcat/webapps/ 目录下

cp -r /usr/local/src/solrcloud/solr /usr/local/src/tomcat/webapps/

f)  将 solr-6.2.0/server/solr/ 目录下的solr.xml文件拷贝到/usr/local/src/solrcloud/solr-cores 目录下,这是solr的核心配置文件

cp -r /usr/local/src/solrcloud/solr-6.2.0/server/solr/solr.xml /usr/local/src/solrcloud/solr-cores

g)  修改 /data/SolrCloud/solr-cores 目录下的solr.xml,修改hostPort和Tomcat端口一致:

将<int name="hostPort">${jetty.port:8983}</int>修改为<int name="hostPort">自定义端口号</int>

<?xml version="1.0" encoding="UTF-8" ?>
<solr>
  <solrcloud>
    <str name="host">${host:}</str>
    <int name="hostPort">8786</int>
    <str name="hostContext">${hostContext:solr}</str>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int>
    <int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int>
    <str name="zkCredentialsProvider">${zkCredentialsProvider:org.apache.solr.common.cloud.DefaultZkCredentialsProvider}</str>
    <str name="zkACLProvider">${zkACLProvider:org.apache.solr.common.cloud.DefaultZkACLProvider}</str>
  </solrcloud>
  <shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory">
    <int name="socketTimeout">${socketTimeout:600000}</int>
    <int name="connTimeout">${connTimeout:60000}</int>
  </shardHandlerFactory>
</solr>

h) 在 /usr/local/src/tomcat/conf/ 目录下创建Catalina/localhost目录

mkdir -p /usr/local/src/tomcat/conf/Catalina/localhost

i) 在 /usr/local/src/tomcat/conf/Catalina/localhost/ 目录下创建solr.xml,此为Solr/home的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/usr/local/src/tomcat/webapps/solr" debug="0" crossContext="true">
    <Environment name="solr/home" type="java.lang.String" value="/usr/local/src/solrcloud/solr-cores/" override="true"/>
</Context>

j) 修改 /usr/local/src/tomcat/bin/catalina.sh 加入以下内容

JAVA_OPTS='-DzkHost=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181/solr'

例如:

k) 修改Tomcat端口号

vim /usr/local/src/znc_solr/tomcat/conf/server.xml

例如:

l)上传ik分词器相关配置文件(ik配置文件见附件)

将ik-analyzer-solr6.x.jar包上传至/usr/local/src/tomcat/webapps/solr/WEB-INF/lib/
创建目录classes, mkdir -p /usr/local/src/tomcat/webapps/solr/WEB-INF/classes
将ext.dic、IKAnalyzer.cfg.xml、stopword.dic三个文件上传至/usr/local/src/tomcat/webapps/solr/WEB-INF/classes/

m) 上传gis相关jts-1.14.jar包(jar包见附件)

将jts-1.14.jar上传至/usr/local/src/tomcat/webapps/solr/WEB-INF/lib/

到此为止,192.168.12.21已安装完毕,接下来进行拷贝到其他节点。

 

2、将192.168.12.21配置同步到其它服务器

a) 进行复制

scp -r /usr/local/src/{solrcloud,tomcat} 192.168.12.22:/usr/local/src/ scp -r /usr/local/src/{solrcloud,tomcat} 192.168.1.23:/usr/local/src/

b) 上传配置到Zookeeper:

注:

  • solrcloud是通过Zookeeper集群来保证配置文件的变更及时同步到各个节点上,所以,需要将配置文件上传到Zookeeper集群。
  • solr配置文件目录:/usr/local/src/solrcloud/solr-config/

执行以下操作:

java -classpath .:/usr/local/src/tomcat/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 192.168.12.21:2181,192.168.12.22:2181,192.168.12.23:2181/solr -confdir /usr/local/src/solrcloud/solr-config/ -confname solr_config

c) 在192.168.12.21 zookeeper1上执行,校验Zookeeper配置文件

在对应zookeeper安装目录执行./zkCli.sh -server 192.168.12.21:2181
[zk: zookeeper1:2181(CONNECTED) 2] ls /solr
[configs]
[zk: zookeeper1:2181(CONNECTED) 3] ls /solr/configs
[solrconfig]
[zk: zookeeper1:2181(CONNECTED) 4] ls /solr/configs/solrconfig
[currency.xml, managed-schema, protwords.txt, solrconfig.xml, synonyms.txt, elevate.xml, stopwords.txt, params.json, lang]

d) 启动Tomcat,

先启动192.168.1.106机器上的tomcat:/usr/local/src/tomcat/bin/startup.sh
再启动其他机器上的Tomcat:/usr/local/src/tomcat/bin/startup.sh

e) 访问solr

http://IP地址:自定义的端口号/solr/index.html

例如:

http://192.168.12.21:8786/solr/index.html

 

f) 创建Collection及初始化Shard

curl 'http://192.168.12.21:8786/solr/admin/collections?action=CREATE&name=collection1&numShards=3&replicationFactor=1'

g) 查看 /usr/local/src/solrcloud/solr-cores/ 目录

[root@192.168.12.21 solr-cores]# ls /usr/local/src/solrcloud/solr-cores/ collection1_shard1_replica1 solr.xml

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值