赵小黑 发表于 2017-12-19 11:03:44

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
  这是没删除之前
  这才代表成功
页: [1]
查看完整版本: linux集群下 solr集群搭建