Centos7:solr伪集群(SolrCloud)搭建

JDK,tocmat环境搭建

zookeeper集群安装

  • 解压缩zookeeper的压缩包
  • 创建data目录
  • 复制zoo_sample.cfg为zoo.cfg
  • 修改confg/zoo.cfg中
    dataDir=**/data
    clientPort=218X
  • 在zoo.cfg末位添加
server.1=192.168.25.128:2881:3881
server.2=192.168.25.128:2882:3882
server.3=192.168.25.128:2883:3883
  • data目录下创建一个myid文件,自定义设置zookeeper实例id
  • 复制zookeeper文件夹三份,分别修改zoo.cfg配置,和myid

启动zookeeper集群

  • 启动脚本
cd /usr/local/src/solr-cloud/zookeeper2281/bin
./zkServer.sh start
cd /usr/local/src/solr-cloud/zookeeper2282/bin
./zkServer.sh start
cd /usr/local/src/solr-cloud/zookeeper2283/bin
./zkServer.sh start
cd /usr/local/src
  • 查看状态
cd /usr/local/src/solr-cloud/zookeeper2281/bin
./zkServer.sh status
cd /usr/local/src/solr-cloud/zookeeper2282/bin
./zkServer.sh status
cd /usr/local/src/solr-cloud/zookeeper2283/bin
./zkServer.sh status
cd /usr/local/src
  • 暂停脚本
cd /usr/local/src/solr-cloud/zookeeper2281/bin
./zkServer.sh stop
cd /usr/local/src/solr-cloud/zookeeper2282/bin
./zkServer.sh stop
cd /usr/local/src/solr-cloud/zookeeper2283/bin
./zkServer.sh stop
cd /usr/local/src

tomcat集群安装

  • 解压安装包
  • 复制4个tomcat
  • 分别配置不同tomcat web.xml三个端口,防止端口冲突

部署solr集群

  • 将solr分别部署到每一个tomcat中
  • 创建4个目录,分别存放每一个solr对应的solrhome

配置zookeeper管理solr配置文件

  • 上传配置文件到zookeeper
    命令路径:solr源码/example/scripts/cloud-scripts/
    /zkcli.sh -zkhost zookeeper1ip:端口号,zookeeper2ip:端口号,zookeeper3ip:端口号 -cmd upconfig -confdir conf路径 -confname myconf

  • 登陆zookeeper服务器查询配置文件
    zookeeper路径/bin
    ./zkCli.sh
    /configs/myconf

    ./zkCli.sh -server ip:端口//连接指定ip端口

配置SolrHome

修改每个solrhome的solr.xml文件

<solrcloud>
    <str name="host">对应solr ip</str>
    <int name="hostPort">对应端口</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
  </solrcloud>

关联Solr和zookeeper

修改每一台solr的tomcat 的 bin目录下catalina.sh文件中加入DzkHost指定zookeeper服务器地址:

JAVA_OPTS="-DzkHost=zookeeper1ip:端口号,zookeeper2ip:端口号,zookeeper3ip:端口号"

启动solr集群

访问任意一台solr,菜单出现cloud

配置集群

  • 添加集群

如果集群中有四个solr节点,创建新集群collection2,将集群分为两片,每片两个副本。
http://ip地址/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2

附录:

solr集群启动脚本

cd /usr/local/src/solr-cloud/tomcat8180/bin
./startup.sh
cd /usr/local/src/solr-cloud/tomcat8280/bin
./startup.sh
cd /usr/local/src/solr-cloud/tomcat8380/bin
./startup.sh
cd /usr/local/src/solr-cloud/tomcat8480/bin
./startup.sh
cd /usr/local/src

solr集群关闭脚本

cd /usr/local/src/solr-cloud/tomcat8180/bin
./shutdown.sh
cd /usr/local/src/solr-cloud/tomcat8280/bin
./shutdown.sh
cd /usr/local/src/solr-cloud/tomcat8380/bin
./shutdown.sh
cd /usr/local/src/solr-cloud/tomcat8480/bin
./shutdown.sh
cd /usr/local/src
原文地址:https://www.cnblogs.com/-saligia-/p/9750423.html