SolrCloud介绍和应用

SolrCloud是基于Solr和Zookeeper的分布式搜索方案,是正在开发中的Solr4.0(目前还是ALPHA版本,基于lucene4.0)的核心组件之一,它的主要思想是使用Zookeeper作为集群的配置信息中心。它有几个特色功能:1)集中式的配置信息 2)自动容错 3)近实时搜索 4)查询时自动负载均衡 。

下载地址:http://lucene.apache.org/solr/downloads.html

流程架构图

基本应用

1、构建2个shard的配置

按照官方的说明  ,将example复制为example2。

cp -r example example2

启动第一个shard

cd example
java -Dbootstrap_confdir=D:/training/apache-solr-4.0.0-ALPHA/example/solr/conf -Dcollection.configName=lifeba -DzkRun -DnumShards=2 -jar start.jar

-DzkRun 启动一个嵌入式的Zookeeper服务器
-Dbootstrap_confdir 指定了solr的conf路径
-DnumShards指定了shard数量
-Dcollection.configName 指定了储存到zookeeper中的config名称

默认创建的核为collection1

启动第2个shard

cd example2
java -Djetty.port=7574 -DzkHost=localhost:9983 -jar start.jar

-Djetty.port 指定了jetty的端口,默认的8983端口已经被占用。
-DzkHost=localhost:9983就是指明了第一个shard中启动的Zookeeper的路径,solr集成的内嵌的zookeeper默认端口为solr的端口+1000,在这里为9983,对应的9984 9985端口分别用于:zookeeper的同步和选举。

访问
http://localhost:8983/solr/#/~cloud?view=graph

SolrCloud介绍和应用_第1张图片

提交数据

cd exampledocs

java -Durl=http://localhost:8983/solr/collection1/update -jar post.jar ipod_video.xml
java -Durl=http://localhost:8983/solr/collection1/update -jar post.jar monitor.xml
java -Durl=http://localhost:8983/solr/collection1/update -jar post.jar mem.xml

查询数据

http://localhost:8983/solr/collection1/select?q=*:*

 

2、构建2个shard和replicas配置。

cp -r example exampleB
cp -r example2 example2B

cd exampleB
java -Djetty.port=8900 -DzkHost=localhost:9983 -jar start.jar

cd example2B
java -Djetty.port=7500 -DzkHost=localhost:9983 -jar start.jar

3、构建Zookeeper集群的配置

配置文件存放在zookeeper中,为了避免单点故障,需要配置Zookeeper集群来实现高可用性和容错性。

使用集成的zookeeper启动

先停掉4个server,然后执行

rm -r example*/solr/zoo_data

启动第一个solr server

cd example

java -Dbootstrap_confdir=D:/training/apache-solr-4.0.0-ALPHA/example/solr/conf -Dcollection.configName=lifeba1 -DzkRun -DzkHost=localhost:9983,localhost:9574,localhost:9900 -DnumShards=2 -jar start.jar

对应的其他3个solr启动

cd example2
java -Djetty.port=7574 -DzkRun -DzkHost=localhost:9983,localhost:9574,localhost:9900 -jar start.jar

cd exampleB
java -Djetty.port=8900 -DzkRun -DzkHost=localhost:9983,localhost:9574,localhost:9900 -jar start.jar

cd example2B
java -Djetty.port=7500 -DzkHost=localhost:9983,localhost:9574,localhost:9900 -jar start.jar

使用外部集群

java -Dbootstrap_confdir=D:/training/apache-solr-4.0.0-ALPHA/example/solr/conf -Dcollection.configName=lifeba1 -DzkHost=192.168.4.93:2181,192.168.4.94:2181,192.168.4.89:2181 -DnumShards=2 -jar start.jar

cd example2
java -Djetty.port=7574 -DzkHost=192.168.4.93:2181,192.168.4.94:2181,192.168.4.89:2181 -jar start.jar

cd exampleB
java -Djetty.port=8900 -DzkHost=192.168.4.93:2181,192.168.4.94:2181,192.168.4.89:2181 -jar start.jar

cd example2B
java -Djetty.port=7500 -DzkHost=192.168.4.93:2181,192.168.4.94:2181,192.168.4.89:2181 -jar start.jar

你可能感兴趣的:(SolrCloud介绍和应用)