-
Solr 入门实战(2)--SolrCloud 简介及安装
SolrCloud 是 Solr 的集群版,用于在多个服务器之间分发索引内容和查询请求。本文主要介绍 SolrCloud 的基本概念及安装,文中使用到的软件版本:Solr 8.9.0、jdk1.8.0_181。
1、SolrCloud 简介
SolrCloud 是 Solr 提供的分布式搜索方案,具有容错性和高可用性。SolrCloud 使用 ZooKeeper 来管理集合、分配、主节点和副本,指定哪些服务器需要处理请求。SolrCloud 有如下特点:
1)集中式的配置信息
2)自动容错
3)近实时搜索
4)查询时自动负载均衡
SolrCloud 的架构图如下:
1)物理结构
三个 Solr 实例(每个实例包括两个 Core)组成一个 SolrCloud。
2)逻辑结构
索引集合包括两个 Shard(shard1和shard2),shard1 和 shard2 分别由三个 Core 组成,其中一个 Leader 两个 Replication,Leader 是由 Zookeeper 选举产生。每个 shard 上三个 Core 的索引数据一致,解决高可用问题;用户发起索引请求负载到 shard1 和 shard2 上,解决高并发问题。
a、collection
Collection 在 SolrCloud 集群中是一个逻辑意义上的完整的索引结构。它常常被划分为一个或多个 Shard(分片),它们使用相同的配置信息。
b、Core
每个 Core 是 Solr 中一个独立运行单位,提供索引和搜索服务。一个 shard 需要由一个 Core 或多个 Core 组成。
c、Master 或 Slave
Master 是 master-slave 结构中的主节点,Slave 是 master-slave 结构中的从节点。同一个 Shard 下 master 和 slave 存储的数据是一致的。
d、Shard
Collection 的逻辑分片。每个 Shard 被化成一个或者多个 replication,通过选举确定哪个是 Leader。
2、SolrCloud 安装
2.1、集群规划
主机 | 用途 |
10.40.96.10 | 安装 Zookeeper |
10.40.96.11 | 安装 Solr 实例 |
10.40.96.12 | 安装 Solr 实例 |
10.40.96.13 | 安装 Solr 实例 |
2.2、安装 Zookeeper
Zookeeper 安装可以参考:https://www.cnblogs.com/wuyongyin/p/12485181.html
安装后 Zookeeper 地址为:10.40.96.10:2181
2.3、单机安装 Solr
在一台机器(10.40.96.10)上先安装 Solr。
2.3.1、下载并解压 Solr
https://solr.apache.org/downloads.html
tar zxvf solr-8.9.0.tgz
2.3.2、配置 IK 分词器
1、下载 IK 分词器的 jar 包放入 server/solr-webapp/webapp/WEB-INF/lib 目录下;可到 Maven 中央仓库(https://search.maven.org/)下载 jar 包:
<dependency> <groupId>com.github.magese</groupId> <artifactId>ik-analyzer</artifactId> <version>8.4.0</version> </dependency>
2、将 resources 目录下的 IKAnalyzer.cfg.xml、ext.dic、stopword.dic 放入 server/resources 目录下;可以在 github(https://github.com/magese/ik-analyzer-solr) 上下载这些配置文件。
3、复制默认配置用于 IK 配置
cd ${SOLR_HOME}/server/solr/configsets
cp -r _default/ ik_default
4、将 resources 目录下的 ik.conf 及 dynamicdic.txt 放入 ${SOLR_HOME}/server/solr/configsets/ik_default/conf 目录下;可以在 github(https://github.com/magese/ik-analyzer-solr) 上下载这些配置文件。
5、修改 ${SOLR_HOME}/server/solr/configsets/ik_default/conf/managed-schema,添加 IK 分词器:
<fieldType name="text_ik" class="solr.TextField"> <analyzer type="index"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType>
6、将配置文件上传至 Zookeeper
cd ${SOLR_HOME}/server/scripts/cloud-scripts ./zkcli.sh -zkhost 10.40.96.10:2181 -cmd upconfig -confname my-config -confdir ${SOLR_HOME}/server/solr/configsets/ik_default/conf/
IK 分词器详细的使用可参考官网说明:https://github.com/magese/ik-analyzer-solr/blob/master/README-CLOUD.md
2.4、分发 Solr 到其他主机
scp -r ${SOLR_HOME} hadoop@10.40.96.12:/home/hadoop scp -r ${SOLR_HOME} hadoop@10.40.96.13:/home/hadoop
2.5、启动/停止 SolrCloud
在各主机上运行:
bin/solr start -c -z 10.40.96.10:2181 [-p port] bin/solr stop [-p port]
2.6、控制台
http://ip:8983/solr
3、SolrCloud 控制台使用
3.1、添加 Collection 对应的配置
可以通过命令行来添加配置到 Zookeeper,先使用带 IK 分词器的默认配置(第一台 Solr 主机 10.40.96.11 上有)添加一个新的配置,再在该配置上进行调整修改。
cd ${SOLR_HOME}/server/scripts/cloud-scripts ./zkcli.sh -zkhost 10.40.96.10:2181 -cmd upconfig -confname new_config_1 -confdir ${SOLR_HOME}/server/solr/configsets/ik_default/conf/
3.2、添加 Collection
使用上一步新加的配置:
3.2、在 Collection 中添加 schema 信息
可以在 managed-schema 中查看添加的字段信息:
3.3、添加/更新文档
{"id": "123456","age": 40,"name": "李白","poems": "望庐山瀑布","about": "字太白","success": "创造了古代浪漫主义文学高峰、歌行体和七绝达到后人难及的高度"},
{"id": "123457","age": 31,"name": "杜甫","poems": "望岳","about": "字子美","success": "唐代伟大的现实主义文学作家,唐诗思想艺术的集大成者"}
3.4、查询文档
来源:
https://www.cnblogs.com/wuyongyin/p/15308593.html