一:什么是solrcloud?
SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求
二:solrcloud的结构(网盗)
三:准备工作
☛ 准备java环境 ☚
zookeeper是用Java编写的,运行在Java环境上,因此,在部署zk的机器上需要安装Java运行环境。为了正常运行zk,我们需要JRE1.6或者以上的版本。
参考博客:linux安装jdk
☛ 下载solr、zookeeper安装包 ☚
zookeeper-3.4.12.tar.gz、solr-7.5.0.tgz
zookeeper:zk下载地址
solr:solr下载地址
☛ 上传解压、重命名 ☚
tar -zxvf zookeeper-3.4.12.tar.gz #解压zookeeper
tar -zxvf solr-7.5.0.tgz #解压solr
mv zookeeper-3.4.12 zookeeper #重命名zookeeper
mv solr-7.5.0 solr #重命名solr
二:伪solr集群搭建(一台服务器)
☛ zookeeper集群搭建 ☚
1:复制三份zookeeper,分别为zk1,zk2,zk3
cp -r zookeeper zk1
cp -r zookeeper zk2
cp -r zookeeper zk3
2:zk1,zk2,zk3目录下新建数据目录data、日志目录log
cd zk1 #zk2、zk3操作类同
mkdir data
mkdir log
3:zk1/data,zk2/data,zk3/data目录下创建zookeeper标识文件 myid,并设置标识id
cd zk1/data/
touch myid
echo 1 > myid #设置zk1的标识id为1,zk2、zk3操作类同,只是zk2的标识id设置为2,zk3的标识id设置为3
4:创建zk1、zk2、zk3的配置文件
cd zk1/conf #zk2、zk3操作类同
mv zoo_sample.cfg zoo.cfg
5:修改zk1、zk2、zk3的配置文件zoo.cfg
zk1为例:
▶▶ 修改dataDir和clientPort参数
# 配置zookeeper数据目录
dataDir=/usr/local/soft/zk1/data
# 配置zookeeper端口
clientPort=2181
▶▶ 添加dataLogDir和server.id参数
# 配置zookeeper的日志目录
dataLogDir=/usr/local/soft/zk1/log
# 配置zookeeper集群 server.标识id = ip:通信端口:投票选举端口
server.1=192.168.1.211:2881:3881
server.2=192.168.1.211:2882:3882
server.3=192.168.1.211:2883:3883
zk2:
dataDir=/usr/local/soft/zk2/data
dataLogDir=/usr/local/soft/zk2/log
clientPort=2182
server.1=192.168.1.211:2881:3881
server.2=192.168.1.211:2882:3882
server.3=192.168.1.211:2883:3883
zk3:
dataDir=/usr/local/soft/zk3/data
dataLogDir=/usr/local/soft/zk3/log
clientPort=2183
server.1=192.168.1.211:2881:3881
server.2=192.168.1.211:2882:3882
server.3=192.168.1.211:2883:3883
6:zk1、zk2、zk3的启动,停止,查看状态脚本
▶▶ 启动 zk_all_start.sh
/usr/local/soft/zk1/bin/zkServer.sh start
/usr/local/soft/zk2/bin/zkServer.sh start
/usr/local/soft/zk3/bin/zkServer.sh start
▶▶ 停止 zk_all_stop.sh
/usr/local/soft/zk1/bin/zkServer.sh stop
/usr/local/soft/zk2/bin/zkServer.sh stop
/usr/local/soft/zk3/bin/zkServer.sh stop
▶▶ 查看状态 zk_all_status.sh
/usr/local/soft/zk1/bin/zkServer.sh status
/usr/local/soft/zk2/bin/zkServer.sh status
/usr/local/soft/zk3/bin/zkServer.sh status
☛ solrcloud搭建 ☚
1:复制四份solr,分别为solr1、solr2、solr3、solr4
2:solr1、solr2、solr3、solr4 修改solr.in.sh(zk/bin/solr.in.sh)配置
#让solr关联zookeeper
ZK_HOST="192.168.1.211:2181,192.168.1.211:2182,192.168.1.211:2183"
#solr主机ip地址
SOLR_HOST="192.168.1.211"
#更改端口分别为8981,solr2端口为8982,solr3端口为8983,solr4端口为8984
SOLR_PORT=8981
3:solr1、solr2、solr3、solr4启动,停止脚本
▶▶ 启动 solr_all_start.sh
/usr/local/soft/solr1/bin/solr start -force
/usr/local/soft/solr2/bin/solr start -force
/usr/local/soft/solr3/bin/solr start -force
/usr/local/soft/solr4/bin/solr start -force
▶▶ 停止 solr_all_stop.sh
/usr/local/soft/solr1/bin/solr stop
/usr/local/soft/solr2/bin/solr stop
/usr/local/soft/solr3/bin/solr stop
/usr/local/soft/solr4/bin/solr stop
☛ 启动zk集群、solrcloud,创建collection ☚
1:创建collecion
./zk_all_start.sh #启动zookeeper集群
./solr_all_start.sh #启动solrcloud
cd solr1/bin/ #进入solrcloud其中任意一个节点solr的bin目录
#-s 分片个数、-rf副本个数
./solr create -c core1-s 2 -rf 2 -force #创建集合,指定2个分片、2个副本
2:访问solrcloud任意一个节点服务器,查看collection集群
☛ 上传solr配置文件到zookeeper,统一管理 ☚
1:使用 zkcli.sh 命令上传 , solr/server/scripts/cloud-scripts目录下
#zkhost:指定zookeeper集群
#condir: 指定要上传的文件
#confname: 命名上传zk之后的文件
./zkcli.sh -zkhost 192.168.1.211:2181,192.168.1.211:2182,192.168.1.211:2183 -cmd upconfig -confdir /usr/local/soft/solr1/server/solr/configsets/_default/conf/ -confname solrconfig
:2:登录zk客户端,查看配置文件
cd /usr/local/soft/zk1/bin #进入zk的bin目录
./zkCli.sh #连接客户端
连接客户端之后,使用 ls path查看文件 ,更多zk操作命令使用help进行查看