solr cloud 集群搭建

本文介绍了SolrCloud的安装步骤,包括环境准备、Zookeeper集群的搭建、Solr的安装与配置,以及如何创建collection。SolrCloud是分布式搜索应用服务器,提供了高效的缓存、垂直搜索等功能,适合大规模数据的搜索需求。
摘要由CSDN通过智能技术生成

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

工作方式
文档通过Http利用XML 加到一个搜索集合中。
查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。

SolrCloud安装
SolrCloud是一个分布式解决方案,安装之前需要我们评估自己应用的数据规模,规划SolrCloud集群如划分多少个Shard,每个Shard需要几分冗余即Replication等

环境
solr-6.3.0
zookeeper-3.4.9
jdk1.8.0_60
安装前的准备工作

安装JDK

1.搭建zookeeper集群
1)将zookeeper解压到/opt/ydbsofware目录
2)将zookeeper发送到另外两台机器上

scp -r /opt/ydbsoftware/zookeeper-3.4.9/ root@ydbslave02:/opt/ydbsoftware
scp -r /opt/ydbsoftware/zookeeper-3.4.9/ root@ydbslave03:/opt/ydbsoftware

3)创建log目录及data目录

mkdir -p /opt/ydbsoftware/dat/zookeeper
mkdir -p /opt/ydbsoftware/logs/zookeeper

4)给每台机器上的zookeeper添加myid标识

echo "1" >> /opt/ydbsoftware/dat/zookeeper/myid
echo "2" >> /opt/ydbsoftware/dat/zookeeper/myid
echo "3" >> /opt/ydbsoftware/dat/zookeeper/myid

5)找到zoo_sample.cfg文件,重命名为:zoo.cfg,或者复制一份然后重命名为zoo.cfg,修改zoo.cfg
这里写图片描述
tickTime=2000
//心跳的发送间隔
initLimit=10
//初始化后收到leader回应的最大心跳周期
sysncLimit=5
//请求和应答长度最多不超过多少个心跳周期
dataDir=/apps/dat/zookeeper
//数据的存储路径
dataLogDir=/apps/Logs/zookeeper
//日志目录
clientPort=2181
//zookeeper的客户端端口号
server.1=ydbslave01:4888:5888
//server.A=B:C:D
//A:zookeeper的myid
//B:ip或域名
//C:这个服务器与集群中leader交换信息的端口
//D:当原leader挂了,选举新的leader,这个端口是选举使用的端口号

6)启动zookeeper节点

cd opt/ydbsoftware/zookeeper-3.4.9/bin/
./zkServer.sh start

要将集群中所有的zk节点都启动才能使用

至此zookeeper集群就已经搭建完毕了,接下来开始搭建Solr Cloud
2.安装solr
1)由于solr 不推荐使用root权限启动,在这里我们创建一个solr用户

useradd solr

2)解压solr到/opt目录下,更名为solr
3)使用root权限将目录的文件主更改为solr

chown -R solr  /opt/solr 

赋予solr用户文件权限

chmod 777 solr  /opt/solr/

4)打开 bin目录下的solr.in.sh
修改ZK_HOST

ZK_HOST="host1,host2,host3"

配置SOLR_HOME

SOLR_HOME=/opt/solr/server/solr

配置SOLR_HOST

SOLR_HOST="host1,host2,host3"

5)在./service/solr目录创建一个solrconfig的目录
将配置文件复制进这个目录,在solr6.0.0+的版本中
要求至少要有solrconfig,xml和managed-schema.xml两个文件
不论是创建一个core还是一个collection都不能缺少这两个文件,当创建一个core时,这两个文件应放在/corename/conf/目录下,而collection则将该目录上传到zookeeper集群中由zookeeper来统一管理
6)创建一个core
在SOLR_HOME中创建一个名为testcore的目录,目录结构如下

  • testcore
    • conf
      • solrconfig.xml
      • managed-schma.xml
    • data

conf目录中的两个配置文件在/opt/solr/server/solr/configsets/basic_configs/conf
目录中有默认版本,可以复制过来使用,并添加自定义的配置
运行bin目录下的solr文件

./bin/solr start 

如果是root账户执行的话要添加 -force

./bin/solr start -force

在浏览器中打开solr的UI界面,http://hostname:8983/solr
点击addCore 就可以将创建好的core添加到solr中

7)创建collection
将collection的配置文件上传到zookeeper集群中

 ./solr/server/scripts/cloud-scripts/zkcli.sh -zkhost ydbslave01:2181,ydbslave02:2181,ydbslave03:2181 -cmd upconfig -confdir ./solr_home/solr/test/conf/ -confname posttest
zkcli.sh:用于上传配置文件到zookeeper配置文件目录的批处理文件

-zkhost :用于指定上传配置文件到那个zookeeper中 

-cmd upconfig:上传配置文件

-confdir :配置文件目录

--confname :给配置文件指定一个名字

上述命令的意义在于,将指定目录的配置文件上传到zookeeper集群中,指定配置的名字为posttest

使用帮助:

[root@ydbslave01 cloud-scripts]# ./zkcli.sh 
usage: ZkCLI
 -c,--collection <arg>     for linkconfig: name of the collection
 -cmd                      cmd to run: bootstrap, upconfig, downconfig,
                           linkconfig, makepath, put, putfile,get,getfile,
                           list, clear, updateacls
 -d,--confdir <arg>        for upconfig: a directory of configuration
                           files
 -h,--help                 bring up this help page
 -n,--confname <arg>       for upconfig, linkconfig: name of the config
                           set
 -name <arg>               name of the cluster property to set
 -r,--runzk <arg>          run zk internally by passing the solr run port
                           - only for clusters on one machine (tests, dev)
 -s,--solrhome <arg>       for bootstrap, runzk: solrhome location
 -val <arg>                value of the cluster to set
 -x,--excluderegex <arg>   for upconfig: files matching this regular
                           expression won't be uploaded
 -z,--zkhost <arg>         ZooKeeper host address
Examples:
zkcli.sh -zkhost localhost:9983 -cmd bootstrap -solrhome /opt/solr
zkcli.sh -zkhost localhost:9983 -cmd upconfig -confdir /opt/solr/collection1/conf -confname myconf
zkcli.sh -zkhost localhost:9983 -cmd downconfig -confdir /opt/solr/collection1/conf -confname myconf
zkcli.sh -zkhost localhost:9983 -cmd linkconfig -collection collection1 -confname myconf
zkcli.sh -zkhost localhost:9983 -cmd makepath /apache/solr
zkcli.sh -zkhost localhost:9983 -cmd put /solr.conf 'conf data'
zkcli.sh -zkhost localhost:9983 -cmd putfile /solr.xml /User/myuser/solr/solr.xml
zkcli.sh -zkhost localhost:9983 -cmd get /solr.xml
zkcli.sh -zkhost localhost:9983 -cmd getfile /solr.xml solr.xml.file
zkcli.sh -zkhost localhost:9983 -cmd clear /solr
zkcli.sh -zkhost localhost:9983 -cmd list
zkcli.sh -zkhost localhost:9983 -cmd clusterprop -name urlScheme -val https
zkcli.sh -zkhost localhost:9983 -cmd updateacls /solr

这样的话,在zookeeper集群中就有了一个叫posttest的配置了,
接下来创建collection

./solr create -c postcolletions  -s 3 -rf 3 -n posttest
-c :指定collection名称

-s  :生成几个share

-rf :副本数

-n :配置名称

至此,我们就已经成功的搭建了一个solr cloud了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值