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操作时,更新能够及时地应用到辅助服务器上。这提供了高可用性和数据一致性,即使主服务器出现问题,辅助服务器也能无缝...
- **Sharding**:索引被分成多个shard(分片),每个shard都是完整索引的一部分,可以复制到不同的节点上,这样既实现了数据的水平扩展也提高了系统的可用性。 - **Replication**:为了提高容错能力,每个shard...
你可以根据需求创建自己的核心,只需在`server/solr/configsets`下复制一个配置集,并在`server/solr`目录下创建对应的核心目录,如`my_core`。 五、定义Schema Schema.xml文件是Solr的核心配置文件,用于定义索引...
Solr的强大之处在于它的灵活性和可扩展性,支持分布式搜索、实时索引、多语言处理等特性。通过配置不同的字段类型和查询解析器,可以满足各种复杂的搜索需求。此外,SolrCloud模式还允许在集群环境中实现高可用性和...
Solr配置安装(一) Apache Solr是一款基于Java的开源搜索服务器,由Apache软件基金会开发。它提供了全文检索、命中高亮、拼写检查、实时索引和多种数据类型支持等强大功能,常用于构建高性能的搜索应用。本文将...
接着,复制并修改“example/solr/collection1/conf”目录下的配置文件到新目录。最后,通过Solr管理界面或者发送HTTP请求来创建核心。 4. **配置索引**:在“schema.xml”文件中定义字段和字段类型,这是索引和查询...
Solr的主要特点包括高度可配置性、实时全文搜索能力、分布式部署的支持等。 #### 二、Solr服务器的安装与配置流程 根据题目中的描述,我们将详细探讨如何安装和配置Solr 5.3.1版本,并确保其与Tomcat 7及JDK 7或更...
- **分布式**:Solr支持水平扩展,可以通过Sharding和复制策略实现分布式索引和查询,处理大数据量的场景。 - **高性能**:Solr使用缓存机制提高查询性能,并支持实时索引,满足高并发需求。 - **丰富的功能**:...
### Solr集群搭建与SolrCloud分布式搜索方案详解 #### 一、SolrCloud概述 SolrCloud 是 Apache Solr 提供的一种分布式搜索解决方案。它主要用于处理大规模数据集的索引和检索工作,并具备容错性和分布式特性。当...
Apache Solr 是一款高度可扩展的开源全文搜索引擎,它基于 Java 开发,并且利用了 Apache Lucene 库来实现强大的...同时,Solr 还支持集群部署,能够处理大规模的数据并提供分布式搜索能力,确保系统的扩展性和可靠性。
- 从解压的`solr-6.6.0\server\solr`路径中复制主配置文件到`solr_home`目录。 **2.4 创建Core** - Core是Solr中的逻辑单元,每个Core代表一组文档的集合。 - 在`solr_home`目录下创建一个名为`mycore`的子目录,...
4. 高级特性:探索Solr的近实时搜索(NRT)、复制、 faceting(分类)、highlighting(高亮显示)等功能。 这个压缩包提供的资源涵盖了Solr的基础知识、配置代码以及可能的教学指导,对于初学者或开发者来说,是一...
这包括复制Solr的配置文件(如`schema.xml`)到对应的核心目录,并根据具体需求修改这些文件,定义索引字段结构。此外,还需要在应用环境根目录`/solr/`下创建并编辑`solr.xml`,以定义各个核心的名字和实例目录。...
- 配置完成后,需要将`example/solr`目录下的`conf`和`data`文件夹复制到Tomcat的`webapps/solr`或自定义的context路径下。这将包含必要的配置文件和初始索引库。 4. **验证安装** 访问`...
Solr基于Apache Lucene,它提供了更高级的功能,如集群、分布式搜索、复制和负载均衡,使得Solr更适合大规模、高并发的搜索应用。 1.2.2 Schema(模式) Schema是Solr的核心配置之一,用于定义索引字段、数据类型...
SolrCloud是Solr的分布式实现,它利用ZooKeeper进行集群协调和配置管理。 7. **CloudSolrClient**:在SolrCloud模式下,应用通常使用CloudSolrClient与Solr集群通信,它可以自动处理数据路由和复制,确保高可用性和...
- **复制与恢复**:Solr支持主从复制,确保数据的一致性和高可用性。 3. **源码结构** 解压后的源码包`solr-9.0.0`包含了以下几个关键部分: - `server`: 存放Solr服务器端代码,如SolrJetty容器、管理API等。 ...