solr 分布式其实是分发,这概念像Mysql的复制。所有的索引的改变都在主服务器里,所有的查询都在从服务里。从服务器不断地(定时)从主服务器拉内容,以保持数据一致。
先描述下我的环境:
solr-master(192.168.1.181), solr-slave(192.168.1.155), jdke1.6.0_06, tomcat-5.5.26, solr-1.2
tomcat_home在 /home/chenlb/tomcat-5.5.26
solr_home在 /home/chenlb/solr-home
solr解压后的目录 /home/chenlb/solr-1.2.0
最好两机可以ssh无密码交互,ssh无密码登录请看:http://www.blogjava.net/chenlb/archive/2008/07/03/212293.html
solr的分发是用rsync的。
快照与分发过程:
1.snapshooter
命令在主服务器产生快照。一般在commit和optimize之后被solr调用。
2.snappuller
命令在从服务器运行,所做的事是从主服务器拉最新的快照。 用rsync的daemon模式来运行可以获得更好的性能与更底的CPU利用率。
3.snapinstaller
命令在从服务器运行,当从服务器从主服务器拉完快照后才执行。它会通知本地Solr服务器打开一个新的index
reader,然后预热这个新index reader的缓存,此时有请求,原来的index reader继续为这此请求服务。一但预热完成,Solr
启用新的index reader,旧的被消亡。
Solr 的Distribution(分发) 在Scripts文件里记录。在solr_home/conf/scripts.conf文件里。
我现在这样配置:
user
=
chenlb
solr_hostname
=
localhost
solr_port
=
8080
rsyncd_port
=
18080
data_dir
=/
home
/
chenlb
/
solr
-
home
/
data
webapp_name
=
solr
master_host
=
192.168
.
1.181
master_data_dir
=/
home
/
chenlb
/
solr
-
home
/
data
master_status_dir
=/
home
/
chenlb
/
solr
-
home
/
logs
上面的配置两机都一样。
1.安装好solr后启动它们,怎样在tomcat安装solr请看:http://www.blogjava.net/chenlb/archive/2008/03/25/188459.html
[chenlb@solr
-
master
~
]$ .
/
tomcat
-
5.5
.
26
/
bin
/
startup.sh
启用且启动rsync
[chenlb@solr
-
master
~
]$ .
/
solr
-
home
/
bin
/
rsyncd
-
enable
-
u chenlb
-
v
[chenlb@solr-master ~]$ ./solr-home/bin/rsyncd-start -u chenlb -v
[chenlb@solr
-
slave
~
]$ .
/
tomcat
-
5.5
.
26
/
bin
/
startup.sh
2.solr-master
先修改post.sh
[chenlb@solr
-
master
~
]$ cd solr
-
1.2
.0
/
example
/
exampledocs
/
[chenlb@solr
-
master exampledocs]$ vi post.sh
[chenlb@solr
-
master exampledocs]$
#
把http://localhost:8389/solr/update改下面的
http:
//
localhost:
8080
/
solr
/
update
提交数据
[chenlb@solr
-
master exampledocs]$ .
/
post.sh
*
.xml
产生快照
[chenlb@solr
-
master
~
]$ .
/
solr
-
home
/
bin
/
snapshooter
-
u chenlb
-
v
说明:由于<listener event="postCommit"
class="solr.RunExecutableListener">...</listener>没有设置成功(出现
java.io.IOException: Cannot run program "snapshooter" (in directory
"solr/bin"): java.io.IOException: error=2, No such file or
directory,现在还没解决),可以只能手动生成快照(当然也可以cron)
3.solr-slave
启用快照下拉
[chenlb@solr
-
slave
~
]$ .
/
solr
-
home
/
bin
/
snappuller
-
enable
-
u chenlb
-
v
拉快照
[chenlb@solr
-
slave
~
]$ .
/
solr
-
home
/
bin
/
snappuller
-
u chenlb
-
v
安装
[chenlb@solr
-
slave
~
]$ .
/
solr
-
home
/
bin
/
snapinstaller
-
u chenlb
-
v
现在可以在solr-slave里看结果了:
http://192.168.1.155:8080/solr/select?q=solr
http://192.168.1.181:8080/solr/select?q=solr
看结果是否一样。
分享到:
相关推荐
**一、Solr分布式架构** 1. **SolrCloud模式**: Solr的分布式特性主要体现在SolrCloud模式中,这是一个基于Zookeeper协调的集群解决方案。每个Solr实例被称为一个Solr节点,多个节点组成了SolrCloud。Zookeeper用于...
Solr分布式部署的目标主要有两个: 1. **主辅服务器同步**:确保每当客户端对索引进行COMMIT操作时,更新能够及时地应用到辅助服务器上。这提供了高可用性和数据一致性,即使主服务器出现问题,辅助服务器也能无缝...
4. 高级特性:探索Solr的近实时搜索(NRT)、复制、 faceting(分类)、highlighting(高亮显示)等功能。 这个压缩包提供的资源涵盖了Solr的基础知识、配置代码以及可能的教学指导,对于初学者或开发者来说,是一...
- **分布式**:Solr支持水平扩展,可以通过Sharding和复制策略实现分布式索引和查询,处理大数据量的场景。 - **高性能**:Solr使用缓存机制提高查询性能,并支持实时索引,满足高并发需求。 - **丰富的功能**:...
- **复制(Replication)**:为了提高可靠性和可用性,Solr可以通过复制来实现数据的冗余存储。 - **分片(Sharding)**:对于非常大的数据集,Solr可以通过分片将其拆分成更小的部分进行分布式的存储和处理。 #### ...
6. **分布式搜索**:Solr 3.5.0支持分布式搜索,通过分片和复制技术,可以在多台机器上分布索引,提高查询性能和可用性。 7. **高亮显示**:Solr能够对搜索结果中的关键词进行高亮,提高用户体验。 8. ** faceting...
SolrCloud是Solr的分布式版本,它提供了数据的自动复制、故障转移和负载均衡。 7. **地理位置搜索**:Solr支持地理位置索引和搜索,可以方便地搜索到附近的地点或根据距离排序结果。 8. **自定义插件**:Solr允许...
- **分布搜索和索引复制**:支持分布式索引和搜索,确保高可用性和容错性。 2. **Lucene的基本概念** - **全文检索库**:Lucene是一个用Java编写的开源全文检索库,提供索引和搜索文本数据的基本工具。 - **应用...
6. **配置与定制**:Solr 7.5 允许开发者根据业务需求定制自己的索引和查询处理流程,通过修改XML配置文件,可以调整字段类型、复制字段、查询分析器等。 7. **JSON与XML支持**:Solr 7.5 支持JSON和XML等多种数据...
通过配置分片和复制,用户可以实现数据的冗余和负载均衡。 5. **配置文件**:Solr的配置主要在solr_home目录下的各个core目录下的conf子目录中完成,包括schema.xml(定义字段和分析器)、solrconfig.xml(配置索引...
7. **分布式搜索**(SolrCloud):SolrCloud是Solr的分布式解决方案,支持集群部署、自动复制和故障转移。理解ZooKeeper的角色以及Sharding和Replication原理是大规模部署的关键。 8. **实时索引**:Solr支持实时...
11. **云存储与Zookeeper**:Solr 5.5依赖Zookeeper进行集群管理和协调,Zookeeper负责存储配置信息,监控节点状态,并处理分布式一致性问题。 12. **性能优化**:Solr 5.5在性能方面做了很多优化,例如更快的启动...
12. **复制与故障恢复**:Solr集群中的数据复制和故障恢复机制确保了服务的可用性和数据的一致性。 在解压"solr-6.4.1.zip"后,你会得到Solr的完整安装包,包括服务器端运行所需的JAR文件、配置文件、样例数据以及...
3. **配置与安装**:Solr的部署和配置过程,包括下载安装、创建核心(Core)、配置Schema(字段定义)和数据导入工具(DataImportHandler,DIH)的使用。 4. **XML与JSON格式**:Solr支持XML和JSON等数据交换格式,...
- **复制与恢复**:Solr支持主从复制,确保数据的一致性和高可用性。 3. **源码结构** 解压后的源码包`solr-9.0.0`包含了以下几个关键部分: - `server`: 存放Solr服务器端代码,如SolrJetty容器、管理API等。 ...
Solr4.7服务器是基于Java的开源搜索和分析引擎,它在Apache Lucene库的基础上构建,用于提供高效、可扩展的全文检索、数据分析和分布式搜索服务。此版本的Solr适用于Java运行环境JDK1.6,这表明它是对较旧Java版本的...
1. 安装与配置:首先,你需要下载并安装Solr,配置Solr服务器的运行环境,包括设置数据目录、定义Schema(字段定义)等。 2. 创建索引:将需要搜索的数据导入到Solr,这个过程称为创建索引。可以使用Solr提供的...
1. **SolrCloud模式**:Solr 7.3.0支持SolrCloud模式,这是Solr的一个分布式部署选项,允许在多个节点上分布数据并提供高可用性和故障切换。通过ZooKeeper协调集群状态,确保数据的一致性。 2. **配置集合...
4. **Solr**:Solr是建立在Lucene之上,提供了一套完整的、高度可配置和扩展的搜索引擎服务,支持分布式搜索、缓存优化,且管理接口丰富,是门户社区和企业应用的理想选择。 ### 1.2 Solr的特性 - **Solr使用...
- **SolrCloud模式**:在Solr 8.3.0中,支持分布式部署,通过Zookeeper协调多个Solr节点,实现高可用和负载均衡。 - **复制与分片**:数据在SolrCloud中被分片和复制,确保即使单个节点故障,查询仍能正常进行。 ...