Solr的两种部署模式
Solr程序包安装好后,可以以两种模式来启动solr服务器:
- Standalone Server 独立服务器模式
- 适用于数据规模不大的场景
- SolrCloud 分布式集群模式
- 适用于数据规模大,高可靠、高可用、高并发的场景
1、独立服务器模式详解
独立服务器模式架构
- 每个solr服务器实例(启动的一个solr服务器进程)都有一个solr主目录(系统变量名为:solr.solr.home)。启动服务器实例时须为实例指定主目录(默认为:server/solr 目录)。
- solr 主目录中存放该服务器实例托管的内核。
- 一个 solr 服务器实例可托管多个内核。
Solr主目录介绍
动手:
1、请查看实际的主目录 server/solr
2、创建一个主目录(复制solr.xml),在它之上启动一个服务实例(我将一个solr.xml文件复制到 /usr/local/solrhome 目录下)
启动服务器实例的命令
- bin/solr start [options]
- bin/solr start -help
- bin/solr restart [options]
- bin/solr restart -help
示例:bin/solr start -s xxxdir -p port
#启动两个实例
[root@iz2zegctspnn963lglh798z solr-7.3.1]# bin/solr start -force
[root@iz2zegctspnn963lglh798z solr-7.3.1]# bin/solr start -s /usr/local/solrhome -p 9999 -force
注意:重启要用和启动时一样的options
查看本机上运行的solr服务实例的状态
- bin/solr status
停止solr服务实例
- bin/solr stop [options]
- bin/solr stop -help
示例:
- bin/solr stop -p port
- bin/solr stop -all
core 内核详解
内核:是在solr服务器中的具体唯一命名的、可管理和配置的索引。一台solr服务器可以托管一个或多个内核。
内核的典型用途:区分不同模式的文档
core 内核管理
创建内核
- bin/solr create [options]
- bin/solr create -help
- bin/solr create_core [options]
- bin/solr create_core -help
示例:bin/solr create -c mycore -p 8983
-c <name> 内核的名称(必须)
-d <confdir> 内核配置目录。默认_default。
-p <port> 创建命令要发送到solr服务实例的端口。如未指定则获取本机运行的solr服务实例列表的第一个。
删除内核
- bin/solr delete [options]
- bin/solr delete -help
示例:bin/solr delete -c corename -p port
core 内核目录结构
为什么两种模式有差异?
集群模式中将 conf 文件放入 zookeeper中统一配置
内核配置文件目录
2、SolrCloud分布式集群模式详解
分布式集群模式介绍
- 索引数据量大时可以使用分布式存储与分布式搜索保证性能。
- 进行存储备份保证高可靠、高可用
- 分布式集群保证高并发、实时响应需求
索引如和存储?
分割成多个片存储到集群的不同节点上,每个分片有备份,存储在集群的不同节点上。
独立的服务器索引叫内核,那集群上索引叫什么?
solrCloud中以collection(集合)来称呼索引,内核存储是集合分片(shard)的备份(relication)
SolrCloud分布式集群架构
分布式集群模式启动
zookeeper
- 独立的zookeeper,则需要先启动zookeeper
- 内嵌的zookeeper,则先启动包含zookeeper的solrNode
solrNode
- 内嵌的zookeeper的第一个solrNode节点服务启动:
- bin/solr start -c -p port -s solrhome
- 其他solr节点的启动:
- bin/solr start -c -p port -s solrhome -z zkhost:port
启动的zookeeper实例的端口为slor实例的端口+1000
分布式集群模式部署练习
在我们的电脑上部署一个两个节点的集群
步骤1:创建两个solr主目录(都复制solr.xml文件),如:
- F:\test\solrCloud\node1\solr
- F:\test\solrCloud\node2\solr
node1/solr 目录下需要zk的配置文件,到 solr-7.3.1/server/solr下拷贝 zoo.cfg
步骤2:启动第一个内嵌有zk的solrNode
- bin/solr start -c -s F:\test\solrCloud\node1\solr -m 100M
-m:指定内存启动
步骤3:启动第二个solrNode
- bin/solr start -c -p 7001 -s F:/test/solrCloud/node2/solr -z localhost:9983 -m 100M
分布式集群的web管理控制台的变化
创建集合 collection
- 语法:集合 — 分片数2 — 备份因子2
- bin/solr create –c collection01 –d _default –shards 2 –replicationFactor 2 –p 8983
- bin/solr create –c collection02 –d sample_techproducts_configs –shards 2 –replicationFactor 2 –p 8983
卸载、加载、重载集合
- 与独立服务器方式相同
删除集合
- bin/solr delete –c collectionname –p port
提交数据到集合
- Linux/Mac
- solr-7.3.0:$ bin/post -c techproducts example/exampledocs/*
- Windows
- solr-7.3.0> java -jar -Dc=techproducts -Dauto example\exampledocs\post.jar example\exampledocs*
修改SolrCloud在ZooKeeper中的配置文件操作记录。
命令执行目录:
solr/server/scripts/cloud-scripts/
1、下载配置文件
./zkcli.sh -zkhost 172.16.xxx.xx:2181,172.16.xxx.xx:2181,172.16.xxx.xx:2181
-cmd getfile /configs/myconf/managed-schema /home/application/managed-schema
./zkcli.sh -zkhost 172.16.xxx.xx:2181,172.16.xxx.xx:2181,172.16.xxx.xx:2181
-cmd getfile /configs/myconf/solrconfig.xml /home/application/solrconfig.xml
2、修改配置文件
vi
3、上传配置文件
./zkcli.sh -zkhost 172.16.xxx.xx:2181,172.16.xxx.xx:2181,172.16.xxx.xx:2181
-cmd putfile /configs/myconf/managed-schema /home/application/managed-schema
./zkcli.sh -zkhost 172.16.xxx.xx:2181,172.16.xxx.xx:2181,172.16.xxx.xx:2181
-cmd putfile /configs/myconf/solrconfig.xml /home/application/solrconfig.xml
4、重新加载配置文件
http://172.16.xxx.xxx:8983/solr/admin/collections?action=RELOAD&name=CollectionName