抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

SolrCloud

环境

Linux:Centos7.9

Jdk:1.8.0_151

Solr:4.10.3

Tomcat:7.0.47

Zookeeper:3.4.6

前面:hhh

如果出现503,可以重启服务器,会有奇迹,不行的话,就回去检查,一般是代码写错了

准备zookeeper
  1. Solr Tomcat Zookeeper上传至虚拟机,并解压 (Jdk自行安装)

  2. Zookeeper复制三份到 /usr/local/solrcloud,并命名为zookeeper01 zookeeper02 zookeeper03

    #创建文件夹
    [root@Heroxin005 ~]# mkdir /usr/local/solrcloud
    #复制文件到该目录
    [root@Heroxin005 ~]# cp -r zookeeper-3.4.6 /usr/local/solrcloud/zookeeper01
    [root@Heroxin005 ~]# cp -r zookeeper-3.4.6 /usr/local/solrcloud/zookeeper02
    [root@Heroxin005 ~]# cp -r zookeeper-3.4.6 /usr/local/solrcloud/zookeeper03
  3. 在每个zookeeper 目录下创建文件夹data ,并在data目录中创建myid文件,其内容为zookeeper编号

    #创建文件夹
    [root@Heroxin005 zookeeper01]# mkdir data
    [root@Heroxin005 zookeeper01]# cd data/
    #创建文件
    [root@Heroxin005 data]# echo 1 >> myid

    #对zookeeper02和zookeeper03也进行相同操作
  4. 修改每个zookeeper下的配置文件

    #复制一份 .cof
    [root@Heroxin005 zookeeper01]# cd conf/
    [root@Heroxin005 conf]# cp zoo_sample.cfg zoo.cfg
    #编辑配置文件
    [root@Heroxin005 conf]# vim zoo.cfg

    #对另外两个zookeeper也进行该操作,注意端口号

    zookeeper01

    zookeeper02

    zookeeper03

  5. 启动服务

    [root@Heroxin005 solrcloud]# zookeeper01/bin/zkServer.sh start
    [root@Heroxin005 solrcloud]# zookeeper02/bin/zkServer.sh start
    [root@Heroxin005 solrcloud]# zookeeper03/bin/zkServer.sh start

  6. 查看状态,可以看到一个leader两个follower

    [root@Heroxin005 solrcloud]# zookeeper01/bin/zkServer.sh status
    [root@Heroxin005 solrcloud]# zookeeper02/bin/zkServer.sh status
    [root@Heroxin005 solrcloud]# zookeeper03/bin/zkServer.sh status

准备Tomcat
  1. 将解压后的Tomcat复制四份到/usr/local/tomcats

  2. 修改端口

    [root@Heroxin005 tomcats]# vim tomcat8080/conf/server.xml

    #修改这三处的端口号,每一个tomcat的端口号递增就可
    #如tomcat8080:端口分别为8005,8080,8009
    # tomcat8081:端口分别为8006,8081,8009
    ...

    image-20221007152349936

  3. solr中的solr-4.10.3.war 复制到每一个tomcat 的webapps

    [root@Heroxin005 solr-4.10.3]# mv dist/solr-4.10.3.war /usr/local/tomcats/tomcat8080/webapps/solr.war

  4. 开放tomcat端口

    [root@Heroxin005 ~]# firewall-cmd --add-port=8080/tcp --permanent
    [root@Heroxin005 ~]# firewall-cmd --add-port=8081/tcp --permanent
    [root@Heroxin005 ~]# firewall-cmd --add-port=8082/tcp --permanent
    [root@Heroxin005 ~]# firewall-cmd --add-port=8083/tcp --permanent
    [root@Heroxin005 ~]# systemctl restart firewalld.service
  5. 启动所有tomcat (用脚本启动吧,附件里有,记得加777权限)

    [root@Heroxin005 ~]# ./tomcat-startup.sh 

    可以访问到每一个tomcat

  6. 关闭tomcat后,删除之前每个tomcat中webapps下的 solr.war(此时可以在webapps目录下看到solr文件夹)

    [root@Heroxin005 ~]# ./tomcat-shutdown.sh 
    [root@Heroxin005 ~]# rm -rf /usr/local/tomcats/tomcat8080/webapps/solr.war
  7. 复制日志文件,到每个tomcat下

    [root@Heroxin005 solr-4.10.3]# cp example/lib/ext/* /usr/local/tomcats/tomcat8080/webapps/solr/WEB-INF/lib/
  8. 创建solrhome,每一个solr都需要一个solrhome来存放文件

    [root@Heroxin005 solr-4.10.3]# cp -r example/solr /usr/local/tomcats/solrhome1
    [root@Heroxin005 solr-4.10.3]# cp -r example/solr /usr/local/tomcats/solrhome2
    [root@Heroxin005 solr-4.10.3]# cp -r example/solr /usr/local/tomcats/solrhome3
    [root@Heroxin005 solr-4.10.3]# cp -r example/solr /usr/local/tomcats/solrhome4

  9. 为每个solr指定它的solrhome

    [root@Heroxin005 tomcats]# vim tomcat8080/webapps/solr/WEB-INF/web.xml 
    #按下图,在配置文件中修改就好

  10. 启动tomcat,访问solr

搭建solr集群
  1. 进入solr-4.10.3/example/scripts/cloud-scripts,上传solrhome配置

    [root@Heroxin005 cloud-scripts]# ./zkcli.sh -zkhost 192.168.196.105:2181,192.168.196.105:2182,192.168.196.105:2183 -cmd upconfig -confdir /usr/local/tomcats/solrhome1/collection1/conf -confname myconf
  2. 进入/usr/local/tomcats,修改每个solrhome的solr.xml

    [root@Heroxin005 tomcats]# vim solrhome1/solr.xml 

    #为每个solr指定一个实例

  3. 为每个tomcat添加指定配置

    #进入目录
    [root@Heroxin005 ~]# cd /usr/local/tomcats
    #修改文件
    [root@Heroxin005 tomcats]# vim tomcat8080/bin/catalina.sh
    [root@Heroxin005 tomcats]# vim tomcat8081/bin/catalina.sh
    [root@Heroxin005 tomcats]# vim tomcat8082/bin/catalina.sh
    [root@Heroxin005 tomcats]# vim tomcat8083/bin/catalina.sh
    JAVA_OPTS="-DzkHost=192.168.196.105:2181,192.168.196.105:2182,192.168.196.105:2183"

  4. 访问任一solr,成功!

  5. 创建一个两片的collection,每片是一主一备

    #浏览器中输入
    http://192.168.196.105:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2

  6. 删除collection1

    http://192.168.196.105:8080/solr/admin/collections?action=DELETE&name=collection1

评论