• linux集群下 solr集群搭建


    首先介绍一下系统架构:

    * 这个图中代表的是三个solr实例,每个实例包括两个core,组成一个solrcloud

    * 索引集合包括两个 shard(shard1和shard2),shard1和shard2分别由三个core组成,其中一个L eader两个Replication,Leader是由zookeeper选举产生,zookeeper控制每个shard上三个core的索引数据一致,解决高可用和高并发问题.

    * Collection在solrcloud集群中是一个索引结构,被划分为一个或多个shard(分片),shard之前使用相同的配置;比如对于商品信息搜索可以创建一个collection,collection=shard1+shard2+.....+shardX

    * Core提供索引和搜索服务,一个shard需要由一个或多个core组成,由于collection由多个shard组成,所以collection一般由多个core组成

    * Master是master-slave结构中的主结点(通常说主服务器),Slave是master-slave结构中的从结点(通常说从服务器或备服务器)。同一个Shard下master和slave存储的数据是一致的,这是为了达到高可用目的。

    下面这张图就是接下来要搭建的solr集群架构

    需要实现zookeeper 高可用。需要搭建集群。建议是奇数节点。需要三个zookeeper服务器。

    搭建solr集群需要7台服务器。

    搭建伪分布式:需要三个zookeeper节点,需要四个tomcat节点.

    环境 准备:

    1.JDK

    2.tomcat

    3.zookeeper

    4.solr

    下面开始讲集群的详细步骤

    这里省略jdk的安装,tomcat,solr,zookeeper的解压

    *复制三份zookeeper解压后的文件到/usr/local/solr-cloud下

    *在每一个zookeeper下创建一个data目录

    *在每个zookeeper的data目录下创建一个myid文件,内容是每个实例的ID,分别为1,2.3

    *把conf目录下的zoo_sample.cfg文件改名为zoo.cfg

    * 修改zoo.cfg配置文件

    dataDir就指向当前zookeeper的data目录

    clientPort保证zookeeper之间不冲突

    最后server.1=xxx的地方就是创建的myid文件指向的id

    *创建快捷启动方式,名为start-zookeeper-all.sh,启动每一个zookeeper

    在启动之前先修改启动文件的权限

    *创建四个tomcat实例,每个tomcat运行在不同的端口:8180、8280、8380、8480

    修改tomcat的端口号

    修改端口号(一共三个地方)

     每个tomcat都要改

    *部署solr的war包到每个tomcat的webapps下面(我用的是solr的文件夹,tomcat启动后解压的solr.war文件)

    为每个solr实例创建solrhome,solrhome的来源参考(linux部署solr)

    *把solrhome关联起来

    修改solrhome里面的solr.xml文件

    host代表当前节点

    hostpart代表这个solrhome对应的tomcat的端口号

    *关联每一个solr和solrhome

    修改每一个tomcat下solr项目里面的web.xml

    将solrhome关联

    *zookeeper集中管理配置文件,所以这一步是上传配置文件

    进入解压的solr.tar.gz文件夹找到zkcli.sh文件

    使用工具上传配置文件

    执行下面的命令:

    ./zkcli.sh -zkhost 192.168.25.133:2181,192.168.25.133:2182,192.168.25.133:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf

    然后在zookeeper01里面的bin目录下有zkCli.sh文件,启动这个文件,输入一下命令可以看到

    那个就是我们刚刚上传的文件

    *接下来就关联solr和zookeeper的关系

    修改tomcat01下面的 catalina.sh

    加入初始化配置:

    四个tomcat都要加

    *启动这个四个tomcat,保证zookeeper集群是启动状态

    编写一个启动tomcat的程序

    修改查询权限

    启动tomcat:

    在浏览器中访问报错:

    HTTP Status 503 - Server is shutting down or failed to initialize

    发现是catalina.sh中的初始化参数配置出错了,

    修改:

    JAVA_OPTS="-DzkHost=192.168.25.133:2181,192.168.25.133:2182,192.168.25.133:2183"

    重新启动,访问:

     看见这个就代表成功了一半了

    因为collection1是单片的,没有我们所说的高用性,所以删除这个,创建新的Collection进行分片处理。

    http://192.168.25.133:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2

    第十一步:删除不用的Collection。

    http://192.168.25.133:8180/solr/admin/collections?action=DELETE&name=collection1

     这是没删除之前

     这才代表成功

  • 相关阅读:
    在购物过程中的购买用请求重定向不用转发的原因
    自己在WEB学习过程中遇到的问题
    WEB应用中普通java代码如何读取资源文件
    [课堂总结]C++课堂总结(二)
    [一些问题] ubuntu 18.04下 配置qt opencv的坑
    [学习笔记] Ubuntu下编译C++ OpenCV程序并运行
    [学习笔记] cv2.Canny 边缘检测
    [C++讨论课] 课堂记录(一)
    [R] 简单笔记(一)
    Appium入门示例(Java)
  • 原文地址:https://www.cnblogs.com/learnjfm/p/7473749.html
Copyright © 2020-2023  润新知