`简介`
SolrCloud 旨在提供一个高度可用、容错的环境,用于跨多个服务器分发索引内容和查询请求。它是基于 Solr 和Zookeeper的分布式搜索方案,它的主要思想是使用 Zookeeper作为集群的配置信息中心。它是灵活的分布式搜索和索引,无需主节点来分配节点、分片和副本使用 ZooKeeper来管理,查询和更新可以发送到任何服务器。
`特点`
1、集中式的配置信息
2、自动容错
3、近实时搜索
4、查询时自动负载均衡
搭建过程:
基础环境搭建-->zookeeper集群搭建-->solr安装-->solrcloud的配置-->solrcloud关于限制权限的配置-->solrcloud的基础入门操作
1、环境描述
node1 192.168.43.100 安装zookeeper5.5.9,solr8.10.1,Java8
node2 192.168.43.101 安装zookeeper5.5.9,solr8.10.1,Java8
node3 192.168.43.102 安装zookeeper5.5.9,solr8.10.1,Java8
说明:从solr5.0开始,Solr不在分发成一个war包以部署在任何Servlet容器上。现在的Solr作为一个单独的Java应用服务器分发。不用再去借助tomcat去启动,可以使用全新的部署方式。
2、安装Java环境
下载地址:https://download.oracle.com
(1)解压安装包
tar xvf jdk-8u141-linux-x64.tar.gz
(2)配置环境变量(解压路径及下载版本跟需调整)
echo ' export JAVA_HOME=/usr/local/java/jdk1.8.0_141/' >> /etc/profile
echo ' export JAVA_BIN=/usr/local/java/jdk1.8.0_141/bin' >> /etc/profile
echo ' export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
echo ' export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /etc/profile
echo ' export JAVA_HOME JAVA_BIN PATH CLASSPATH' >> /etc/profile
(3)刷新环境变量
source /etc/profile
(4)查看安装情况
java -version
3、zookeeper集群的搭建
下载地址: http://mirror.easyname.ch/apache/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz
(1)解压安装包
tar xvf apache-zookeeper-3.5.9-bin.tar.gz
(2)配置zookeeper
cp zoo_sample.cfg zoo.cfg
(3)修改配置文件
vim zoo.cfg
#自定义数据目录
mkdir -p /var/lib/zookeeper
dataDir=/var/lib/zookeeper
#集群配置信息
4lw.commands.whitelist=mntr,conf,ruok
server.1=192.168.43.100:2888:3888
server.2=192.168.43.101:2888:3888
server.3=192.168.43.102:2888:3888
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
#创建myid文件
echo "1" >/var/lib/zookeeper/myid (192.168.43.100)
echo "2" >/var/lib/zookeeper/myid (192.168.43.101)
echo "3" >/var/lib/zookeeper/myid (192.168.43.102)
4、启动zookeeper,查看集群状态
./zkServer.sh start
./zkServer.sh status
5、solr安装
下载地址: wget https://dlcdn.apache.org/lucene/solr/8.10.1/solr-8.10.1.tgz
(1)解压安装包
tar xzf solr-8.10.1.tgz solr-8.10.1/bin/install_solr_service.sh --strip-components=2
(2)新建solr家目录
mkdir /solr
(3)安装
./install_solr_service.sh solr-8.10.1.tgz -d /solr -n
6、solrcloud的配置
#zookeeper注册中心配置
vim solr.in.sh
ZK_HOST="192.168.43.100:2181,192.168.43.101:2181,192.168.43.102:2181/solr"
说明:zookeeper的节点可跟需定义。
7、solrcloud关于限制权限的配置
#zookeeper节点访问权限限制
./zkCli.sh
setAcl /solr digest:admin:0uek/hZ/V9fgiM35b0Z2226acMQ=:cdrw
说明:密码设置admin:123456
#solr设置访问zookeeper节点权限
vim solr.in.sh
SOLR_ZK_CREDS_AND_ACLS="-DzkACLProvider=org.apache.solr.common.cloud.VMParamsAllAndReadonlyDigestZkACLProvider \
-DzkCredentialsProvider=org.apache.solr.common.cloud.VMParamsSingleSetCredentialsDigestZkCredentialsProvider \
-DzkDigestUsername=admin -DzkDigestPassword=123456 \
-DzkDigestReadonlyUsername=admin -DzkDigestReadonlyPassword=123456"
SOLR_OPTS="$SOLR_OPTS $SOLR_ZK_CREDS_AND_ACLS"
#solrcloud访问首页设置密码
创建security.json (置于数据目录)
{
"authentication": {
"blockUnknown": true,
"class": "solr.BasicAuthPlugin",
"credentials": {
"solr": "NOtt7U5otRIJh3ns42J3f++Vwvv3zPai05rjUaB0tcI= k2gx9ThRQYbruBV00jllynx0lshMdM6ERpFEzY4H2sg="
},
"": {
"v": 0
}
},
"authorization": {
"class": "solr.RuleBasedAuthorizationPlugin",
"permissions": [
{
"name": "security-edit",
"role": "admin"
}
],
"user-role": {
"solr": "admin"
}
}
}
说明:配置密码:solr solr@123456
#上传配置到zookeeper中心
bin/solr zk cp /solr/data/security.json zk:security.json
8、启动solr登录
/etc/init.d/solr start
#访问
http://IP:8983
节点状态
zookeeper集群状态
9、solrcloud的简单操作
collection的创建