Solr之SolrCloud集群搭建
2015-07-02 22:08
441 查看
本机主要演示SolrCloud基于zookeeper集群搭建,多台zookeeper服务器具备系统高可靠性,高可用性,任意一台zookeeper服务器挂掉,系统会选举出一台服务器为leader。多台Solr,任意一台solr服务器挂掉,系统还是可以用的。solr安装包里面已经包含zookeeper,但是这样集成在一起,耦合度太高,不利于扩展。每一次重启tomcat,就相当于重启zookeeper了一遍,造成zookeeper集群不稳定,一般都是单独安装配置zookeeper集群,zookeeper集群最好有3个以上的主机,solr根据实际需求扩展。
一、安装zookeeper和solr
由于机器有限,这里我们使用zookeeper一台,solr二台机器演示。
zookeeper:192.168.100.90
solr:192.168.18.119 192.168.18.177
1.安装zookeeper
参考:linux上Zookeeper集群安装及监控
2.安装solr
wget http://mirrors.cnnic.cn/apache/lucene/solr/5.2.1/solr-5.2.1.zip
solr下载包中提供了Jetty服务器部署,直接bin/solr start启动即可,下面我们通过tomcat部署solr:
1)安装jdk1.7.0_60和apache-tomcat-7.0.30略
2)复制solr安装包到tomcat下
cp solr-5.2.1/server/webapps/solr.war ~/apache-tomcat-7.0.30/webapps/
3)启动tomcat,会自动解压solr.war在apache-tomcat-7.0.30/webapps/solr/下新建文件夹solr_home,把官网下载的solr(本文为:solr-5.2.1.zip)解压目录中的"solr-5.2.1\server\solr"目录下的所有内容复制到solr_home中。
4)配置solr_home
修改tomcat-7.0.30/webapps/solr/WEB-INF/web.xml,取消注释,配置“env-entry-value”的值为
5)配置日志
拷贝solr-5.2.1/example/lib/ext/下所有jar包至apache-tomcat-7.0.30/webapps/solr/WEB-INF/lib/下,将solr-solr-5.2.1/example/resources/log4j.properties拷贝到apache-tomcat-7.0.30/webapps/solr/WEB-INF/classes下:
cp solr-5.2.1/example/lib/ext/* apache-tomcat-7.0.30/webapps/solr/WEB-INF/lib/
mdkir -p apache-tomcat-7.0.30/webapps/solr/WEB-INF/classes/
cp solr-5.2.1/example/resources/log4j.properties apache-tomcat-7.0.30/webapps/solr/WEB-INF/classes
二、配置
1.上传配置至zookeeper
在任意一台机器上新建SolrCloud配置文件目录:/home/slim/solrcloud/config-files,将solr-5.2.1/server/solr/configsets/basic_configs/conf目录拷贝到config-files目录下。新建Solr Zk CLI库文件目录:/home/slim/solrcloud/solr-lib,将第三步apache-tomcat-7.0.30/webapps/solr/WEB-INF/lib/目录文件拷贝过来。
cp -rf solr-5.2.1/server/solr/configsets/basic_configs/conf/* solrcloud/config-files/
cp -rf apache-tomcat-7.0.30/webapps/solr/WEB-INF/lib/* solrcloud/solr-lib/
将配置文件上传到ZooKeeper中
java -classpath .:/home/slim/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 192.168.100.90:2181 -confdir /home/slim/solrcloud/config-files -confname testconf
备注:更新配置文件也是上面的命令。
将上传到ZooKeeper中配置文件与Collection相关联
java -classpath .:/home/slim/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection mycollection -confname testconf -zkhost 192.168.100.90:2181
关于org.apache.solr.cloud.ZkCLI类可查看solr-core-4.3.1.jar。
若要删除配置文件,可将/home/develop/xq/zookeeper/data/version-2/目录下所有文件删除。
运行以上命令,会生成zookeeper.out文件,可以查看命令是否运行成功。
运行zkCli.sh,查看配置文件是否上传成功。
[slim@localhost zookeeper-3.4.6]$ ./bin/zkCli.sh
查看配置文件:
[zk: localhost:2181(CONNECTED) 2] ls /configs/testconf
[currency.xml, protwords.txt, synonyms.txt, _rest_managed.json, solrconfig.xml, stopwords.txt, lang, schema.xml]
2.solr配置
新建solrhome/solr目录,作为索引存储目录。创建solr.xml文件,作为solrcloud配置文件。
修改tomcat的bin目录下的catalina.sh,加入以下命令:
export JAVA_OPTS="-DzkHost=192.168.100.90:2181"
在其他机器上配置如上。
3.启动tomcat,配置collection和core
#bin/startup.sh ;tail -f logs/catalina.out
在浏览器中输入以下命令进行创建collection和core。
http://192.168.18.119:8080/solr/admin/collections?action=create&name=testcollection&numShards=2&replicationFactor=1&maxShardsPerNode=2
注意,用create和CREATE都行,不区分大小写。以下删除同上。
删除collection和core:
http://192.168.18.199:8080/solr/admin/collections?action=delete&name=testcollection&numShards=2&replicationFactor=1&maxShardsPerNode=2
参数说明:
numShards:默认为1.分片数。
replicationFactor:每个分片的复本数
maxShardsPerNode:每个Solr服务器节点上最大分片数(Solr 4.2新增)
注意:一个机器上的分片数<=maxShardsPerNode.即:numShards*replicationFactor<=maxShardsPerNode.
若不符合以上规则,创建的时候会报错。
创建完成,可以在页面看到分片的图形
由于节点数为2个,创建2个分片,solr会自动分片,每台机器一个分片,没有副本。
参考文章:
1.一个zookeeper,一个solr服务器配置
2.一台zookeeper服务器,多台solr服务器配置
3.多台zookeeper服务器,多台solr服务器配置
4.tomcat solrcloud zookeeper外部部署
5.solrCloud+tomcat+zookeeper集群配置
6.solrcloud分布式集群部署及索引操作实例
7.SolrCloud 分布式集群安装部署以及管理
一、安装zookeeper和solr
由于机器有限,这里我们使用zookeeper一台,solr二台机器演示。
zookeeper:192.168.100.90
solr:192.168.18.119 192.168.18.177
1.安装zookeeper
参考:linux上Zookeeper集群安装及监控
2.安装solr
wget http://mirrors.cnnic.cn/apache/lucene/solr/5.2.1/solr-5.2.1.zip
solr下载包中提供了Jetty服务器部署,直接bin/solr start启动即可,下面我们通过tomcat部署solr:
1)安装jdk1.7.0_60和apache-tomcat-7.0.30略
2)复制solr安装包到tomcat下
cp solr-5.2.1/server/webapps/solr.war ~/apache-tomcat-7.0.30/webapps/
3)启动tomcat,会自动解压solr.war在apache-tomcat-7.0.30/webapps/solr/下新建文件夹solr_home,把官网下载的solr(本文为:solr-5.2.1.zip)解压目录中的"solr-5.2.1\server\solr"目录下的所有内容复制到solr_home中。
4)配置solr_home
修改tomcat-7.0.30/webapps/solr/WEB-INF/web.xml,取消注释,配置“env-entry-value”的值为
<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/home/slim/apache-tomcat-7.0.30/webapps/solr/solr_home</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
5)配置日志
拷贝solr-5.2.1/example/lib/ext/下所有jar包至apache-tomcat-7.0.30/webapps/solr/WEB-INF/lib/下,将solr-solr-5.2.1/example/resources/log4j.properties拷贝到apache-tomcat-7.0.30/webapps/solr/WEB-INF/classes下:
cp solr-5.2.1/example/lib/ext/* apache-tomcat-7.0.30/webapps/solr/WEB-INF/lib/
mdkir -p apache-tomcat-7.0.30/webapps/solr/WEB-INF/classes/
cp solr-5.2.1/example/resources/log4j.properties apache-tomcat-7.0.30/webapps/solr/WEB-INF/classes
二、配置
1.上传配置至zookeeper
在任意一台机器上新建SolrCloud配置文件目录:/home/slim/solrcloud/config-files,将solr-5.2.1/server/solr/configsets/basic_configs/conf目录拷贝到config-files目录下。新建Solr Zk CLI库文件目录:/home/slim/solrcloud/solr-lib,将第三步apache-tomcat-7.0.30/webapps/solr/WEB-INF/lib/目录文件拷贝过来。
cp -rf solr-5.2.1/server/solr/configsets/basic_configs/conf/* solrcloud/config-files/
cp -rf apache-tomcat-7.0.30/webapps/solr/WEB-INF/lib/* solrcloud/solr-lib/
将配置文件上传到ZooKeeper中
java -classpath .:/home/slim/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 192.168.100.90:2181 -confdir /home/slim/solrcloud/config-files -confname testconf
备注:更新配置文件也是上面的命令。
将上传到ZooKeeper中配置文件与Collection相关联
java -classpath .:/home/slim/solrcloud/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection mycollection -confname testconf -zkhost 192.168.100.90:2181
关于org.apache.solr.cloud.ZkCLI类可查看solr-core-4.3.1.jar。
若要删除配置文件,可将/home/develop/xq/zookeeper/data/version-2/目录下所有文件删除。
运行以上命令,会生成zookeeper.out文件,可以查看命令是否运行成功。
运行zkCli.sh,查看配置文件是否上传成功。
[slim@localhost zookeeper-3.4.6]$ ./bin/zkCli.sh
查看配置文件:
[zk: localhost:2181(CONNECTED) 2] ls /configs/testconf
[currency.xml, protwords.txt, synonyms.txt, _rest_managed.json, solrconfig.xml, stopwords.txt, lang, schema.xml]
2.solr配置
新建solrhome/solr目录,作为索引存储目录。创建solr.xml文件,作为solrcloud配置文件。
<solr> <solrcloud> <str name="host">${host:}</str> <int name="hostPort">${jetty.port:8080}</int> <str name="hostContext">${hostContext:solr}</str> <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool> <int name="zkClientTimeout">${zkClientTimeout:30000}</int> <int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int> <int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int> </solrcloud> <shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory"> <int name="socketTimeout">${socketTimeout:600000}</int> <int name="connTimeout">${connTimeout:60000}</int> </shardHandlerFactory> </solr>
修改tomcat的bin目录下的catalina.sh,加入以下命令:
export JAVA_OPTS="-DzkHost=192.168.100.90:2181"
在其他机器上配置如上。
3.启动tomcat,配置collection和core
#bin/startup.sh ;tail -f logs/catalina.out
在浏览器中输入以下命令进行创建collection和core。
http://192.168.18.119:8080/solr/admin/collections?action=create&name=testcollection&numShards=2&replicationFactor=1&maxShardsPerNode=2
<response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">20227</int> </lst> <lst name="success"> <lst> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">10830</int> </lst> <str name="core">testcollection_shard1_replica1</str> </lst> <lst> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">18575</int> </lst> <str name="core">testcollection_shard2_replica1</str> </lst> </lst> </response>
注意,用create和CREATE都行,不区分大小写。以下删除同上。
删除collection和core:
http://192.168.18.199:8080/solr/admin/collections?action=delete&name=testcollection&numShards=2&replicationFactor=1&maxShardsPerNode=2
参数说明:
numShards:默认为1.分片数。
replicationFactor:每个分片的复本数
maxShardsPerNode:每个Solr服务器节点上最大分片数(Solr 4.2新增)
注意:一个机器上的分片数<=maxShardsPerNode.即:numShards*replicationFactor<=maxShardsPerNode.
若不符合以上规则,创建的时候会报错。
创建完成,可以在页面看到分片的图形
由于节点数为2个,创建2个分片,solr会自动分片,每台机器一个分片,没有副本。
参考文章:
1.一个zookeeper,一个solr服务器配置
2.一台zookeeper服务器,多台solr服务器配置
3.多台zookeeper服务器,多台solr服务器配置
4.tomcat solrcloud zookeeper外部部署
5.solrCloud+tomcat+zookeeper集群配置
6.solrcloud分布式集群部署及索引操作实例
7.SolrCloud 分布式集群安装部署以及管理
相关文章推荐
- SQL Server全文检索查询浅析
- 在Eclipse中运行Solr 基础知识
- java Lucene 中自定义排序的实现
- 从零开始使用Hubbledotnet进行全文搜索-前言
- Solr基础--设置solr/home的三种方式
- Docker使用supervisor构建solr
- solr4.0安装和简单导入mysql数据
- Solr 4.0 基础教程
- 自译Solr in action中文版
- Solr In Action 中文版 第一章(一)
- Solr In Action 中文版 第一章 (二)
- Solr In Action 中文版 第一章(三)
- 基于solr实现hbase的二级索引
- 基于Nutch&Solr定向采集解析和索引搜索的整合技术指南文档
- 基于Nutch&Solr定向采集解析和索引搜索的整合技术指南文档
- zg手册 之 Mysql 开发(1)-- 中文全文检索插件开发
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用2
- Lucene整合"庖丁解牛"中文分词包
- JAVA lucene全文检索工具包的理解与使用 分享
- Lucene:基于Java的全文检索引擎简介