Linux安装solrCloud

SolrCloud介绍

SolrCloud简介

SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。

SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心与协调服务中心。

它有几个特色功能:

1)集中式的配置信息

2)自动容错

3)实时搜索

4)查询时自动负载均衡

Zookeeper简介

Zookeeper直译是 动物园管理员,他是用来管hadoop(大象)、Hive(蜜蜂)、pig(小猪)的管理员, ApacheHbase和 Apache Solr 的分布式集群都用到了zookeeper;zookeeper是一个分布式的、开源的程序协调服务,是hadoop项目下的一个子项目。

SolrCloud结构

SolrCloud为了降低单机的处理压力,需要由多台服务器共同来完成索引和搜索任务。实现的思路是将索引数据进行Shard(分片)拆分,每个分片由多台的服务器共同完成,当一个索引或搜索请求过来时会分别从不同的Shard的服务器中操作索引。SolrCloud需要Solr基于Zookeeper部署,由于SolrCloud需要由多台服务器组成,由zookeeper来进行协调管理。


SolrCloud搭建

两大组成部分

1、  zookeeper集群

a)    zookeeper需要保证高可用,需要搭建集群

b)    zookeeper需要进行投票和选举机制,最少需要三个节点

c)     zookeeper的三个节点,注意修改端口号不一样

2、  Solr集群

a)    需要四个节点(solr应用服务器);

b)    四台tomcat部署4个 solr应用服务器

c)     整个collection分成两个分片,每个分片都由两个服务器组成,master和slave

zookeeper集群搭建

复制

#复制三份zookeeper

cd /usr/local/
mkdir ./solr/solr-cloud/

cp zookeeper-3.4.8.tar.gz solr/solr-cloud/

cd solr/solr-cloud/

#解压
tar -xzvf zookeeper-3.4.8.tar.gz

#重命名为zookeeper01,后续再复制02,03
mv zookeeper-3.4.8 zookeeper01

cp -r zookeeper01/ zookeeper02 && cp -r zookeeper01/ zookeeper03

配置

给每个zookeeper创建data文件夹
#对/usr/local/solr/solr-cloud目录下的3个zookeeper创建data文件夹
mkdir zookeeper01/data && mkdir zookeeper02/data && mkdir zookeeper03/data

#对/usr/local/solr/solr-cloud目录下的3个zookeeper创建 myid 文件,并分别写入1,2,3
vim zookeeper01/data/myid
#对上述文件写入数字 1

vim zookeeper02/data/myid
#对上述文件写入数字 2

vim zookeeper03/data/myid
#对上述文件写入数字 3

重命名每个zookeeper配置文件

mv zookeeper01/conf/zoo_sample.cfg zookeeper01/conf/zoo.cfg
mv zookeeper02/conf/zoo_sample.cfg zookeeper02/conf/zoo.cfg
mv zookeeper03/conf/zoo_sample.cfg zookeeper03/conf/zoo.cfg

修改每个zookeeper配置文件

修改dataDir工作目录(每个zookeeper对应路径;
    如/usr/local/solr/solr-cloud/zookeeper01/data)

修改clientPort客户端连接端口(每个不同三台对应3181,3182,3183)

在三个配置文件底部都加上zookeeper集群的server编号、地址、端口:端口
server.1=192.168.12.128:2881:3881
server.2=192.168.12.128:2882:3882
server.3=192.168.12.128:2883:3883

格式说明:server.myid文件中的编号=ip:启动监听端口:选举端口


vim zookeeper01/conf/zoo.cfg
修改后效果如下:

 

vim zookeeper02/conf/zoo.cfg
修改后效果如下:    同时修改dataDir   clientPort
 

vim zookeeper03/conf/zoo.cfg
修改后效果如下:
 

启动

zookeeper01/bin/zkServer.sh start
zookeeper02/bin/zkServer.sh start
zookeeper03/bin/zkServer.sh start

如果启动失败,可以在启动命令之后添加start-foreground;查看启动失败日志。

查看状态

./zookeeper01/bin/zkServer.sh status
./zookeeper02/bin/zkServer.sh status
./zookeeper03/bin/zkServer.sh status

搭建solr集群

需要4个单机solr应用服务器。安装一个黏贴复制。

把solrhome复制到solr-cloud目录下,复制4份

cd /usr/local/solr/

cp -r solrhome/ solr-cloud/solrhome01
cp -r solrhome/ solr-cloud/solrhome02
cp -r solrhome/ solr-cloud/solrhome03
cp -r solrhome/ solr-cloud/solrhome04

安装(复制)4个tomcat

#复制4个之前安装的单机版的solr
cp -r tomcat/ solr-cloud/tomcat-solr01
cp -r tomcat/ solr-cloud/tomcat-solr02
cp -r tomcat/ solr-cloud/tomcat-solr03
cp -r tomcat/ solr-cloud/tomcat-solr04

修改tomcat端口号8081~8084

d solr-cloud

server.xml需要修改3个地方的端口号(server port(第22行)、http port(第71行)、connector port(第93行));与其它tomcat的不冲突就好,端口依次可以为(8001,8081,8011;8002,8082,8012;8003,8083,8013;8004,8084,8014)

vim tomcat-solr01/conf/server.xml

如下图第一个Tomcat为例,修改三个端口号8001,8081,8011,其他Tomcat类似(8002,8082,8012;8003,8083,8013;8004,8084,8014)
vim tomcat-solr02/conf/server.xml 
vim tomcat-solr03/conf/server.xml 
vim tomcat-solr04/conf/server.xml

修改每个solr的web.xml

4个tomcat都要修改为对应的solrhome
vim tomcat-solr01/webapps/solr/WEB-INF/web.xml
vim tomcat-solr02/webapps/solr/WEB-INF/web.xml
vim tomcat-solr03/webapps/solr/WEB-INF/web.xml
vim tomcat-solr04/webapps/solr/WEB-INF/web.xml

修改第43行的solrhome路径
例如 /usr/local/solr/solr-cloud/solrhome01
效果:

修改每个solrhome里面的solr.xml

vim solrhome01/solr.xml
vim solrhome02/solr.xml
vim solrhome03/solr.xml
vim solrhome04/solr.xml

第32的host的内容修改为${host:192.168.12.128}【注意】原来的为${host:}
第33行hostPort的内容修改为${jetty.port:8081}【注意】原来的为${jetty.port:8983};另外修改的端口号应该对应每台tomcat的端口号。

如solrhome01需要修改为8081,其他的依次为8082、8083、8084

上传配置文件到zookeeper集群

#进入/usr/local/solr/solr-4.10.3/example/scripts/cloud-scripts,执行命令
cd /usr/local/solr/solr-4.10.3/example/scripts/cloud-scripts

#需要运行的以下命令,需要修改IP地址和修改solrcore的路径地址
./zkcli.sh -zkhost 192.168.12.128:3181,192.168.12.128:3182,192.168.12.128:3183 -cmd upconfig -confdir /usr/local/solr/solr-cloud/solrhome01/collection1/conf -confname myconf

zookeeper是对配置文件的集中管理,

以上命令的作用是把配置文件上传给zookeeper,由zookeeper管理配置文件

zookeeper把所有的solr集群的配置文件进行统一管理.

zkcli.sh: 命令名称

参数说明:

   -zkhost:指定zookeeper的ip与port

  -cmd upconfig: 上传配置文件

  -confdir: 配置文件的目录 

  -confname: 指定配置文件存放的文件夹名称

注意:当solr的配置文件发生改变需用zkcli.sh命令重新上传配置文件到zookeeper

查看zookeeper配置文件(了解)

#进入任意zookeeper,使用客户端进行查看
cd /usr/local/solr/solr-cloud/zookeeper01/bin

./zkCli.sh -server 192.168.12.128:3181

#执行上面命令后,使用ls命令查看zookeeper配置信息,再出来的界面分别输入。。按ctrl+c退出

ls /

ls /configs

ls /configs/myconf


设置zookeeper的地址给tomcat

# 需要修改每个Tomcat的bin/catalina.sh文件
cd /usr/local/solr/solr-cloud/

vim tomcat-solr01/bin/catalina.sh
vim tomcat-solr02/bin/catalina.sh
vim tomcat-solr03/bin/catalina.sh
vim tomcat-solr04/bin/catalina.sh

#如tomcat01,其他Tomcat都一样设置,第251行添加JAVA_OPTS,即如下内容:

JAVA_OPTS="-DzkHost=192.168.12.128:3181,192.168.12.128:3182,192.168.12.128:3183"

启动所有tomcat

./tomcat-solr01/bin/startup.sh 
./tomcat-solr02/bin/startup.sh 
./tomcat-solr03/bin/startup.sh 
./tomcat-solr04/bin/startup.sh

访问任意一个solr集群的节点都可以   如http://192.168.12.128:8081/solr


集群分片

集群中有四个solr节点创建新集群taotao_collection(名字可以自行取,不要原有的重复即可),将集群分为两片,每片一个副本。

http://192.168.12.128:8081/solr/admin/collections?action=CREATE&name=taotao_collection&numShards=2&replicationFactor=2




删除原来的solrcore

http://192.168.12.128:8081/solr/admin/collections?action=DELETE&name=collection1



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值