SolrCloud学习(一)系统搭建

来源:互联网 发布:淘宝女装退款率 编辑:程序博客网 时间:2024/05/08 12:21

Solr介绍

Solr是一个分布式搜索系统,支持以webservice的方式来操作、调用系统,提供了良好的运维、管理界面。

Solr资料

http://wiki.apache.org/solr/


SolrCloud搭建

软件准备

apache-tomcat-6.0.37.tar.gz、solr-4.4.0.tgz、zookeeper-3.4.5.tar.gz

系统环境

server1,server2(依据环境需要,可选择服务器数量)

Solr安装

解压apache-tomcat-6.0.37.tar.gz、solr-4.4.0.tgz,修改解压后的文件夹名字,如下

然后创建tomcat加载solr.war文件的配置
mkdir /data1/tomcat/conf/Catalina/localhost/ -pvim /data1/tomcat/conf/Catalina/localhost/solr.xml
solr.xml文件配置如下

<?xml version="1.0" encoding="utf-8"?><Context docBase="/data1/solr/example/solr/solr.war" debug="0" crossContext="false">    <Environment name="solr/home" type="java.lang.String" value="/data1/solr/example/solr/" override="true"/></Context>

进入solrhome目录,拷贝/data1/solr/dist/solr-4.4.0.war至/data1/solr/example/solr/solr.war
cp /data1/solr/dist/solr-4.4.0.war /data1/solr/example/solr/solr.war

配置/data1/solr/example/solr/collection1/conf/solrconfig.xml,添加如下配置:

  <admin>    <defaultQuery>*:*</defaultQuery>  </admin>  <dataDir>${solr.data.dir:/data1/solr/example/solr/data}</dataDir>
修改/data1/solr/example/solr/collection1/conf/solrconfig.xml的lib配置

  <lib dir="../../../contrib/extraction/lib" regex=".*\.jar" />  <lib dir="../../../dist/" regex="solr-cell-\d.*\.jar" />  <lib dir="../../../contrib/clustering/lib/" regex=".*\.jar" />  <lib dir="../../../dist/" regex="solr-clustering-\d.*\.jar" />  <lib dir="../../../contrib/langid/lib/" regex=".*\.jar" />  <lib dir="../../../dist/" regex="solr-langid-\d.*\.jar" />  <lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />  <lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />  <lib dir="../../lib/" regex=".*\.jar" />

解压/data1/solr/dist/solr-4.4.0.war,复制WEB-INF至example/solr,如下:

cd /data1/solr/dist/mkdir /data1/solr/example/solr-webapp/webapp/ -pcp -r WEB-INF/ /data1/solr/example/solr-webapp/webapp/

PS:此处的配置是为了解决SolrCloud的cloud-scripts/zkcli.sh脚本运行依赖环境


此时已经可以启动tomcat了,在这之前,拷贝solr日志依赖环境至tomcat下, 否则会导致tomcat启动无法加载solr.war

操作如下

cp /data1/solr/example/lib/ext/*.jar /data1/tomcat/lib/cp /data1/solr/example/resources/log4j.properties /data1/tomcat/lib/
然后启动tomcat,检测tomcat+solr的环境是否成功,查看日志来解决启动失败的问题。

Server1,Server2都按照以上步奏进行部署,确定solr都可以成功访问。


zookeeper配置

在server1,server2解压zookeeper-3.4.5.tar.gz,并创建zookeeper数据文件夹,如下



进入zookeeper文件夹,进行配置,操作如下

cd /data1/zookeeper/conf/cp zoo_sample.cfg zoo.cfgvim zoo.cfg

# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just # example sakes.dataDir=/data1/zookeeper_data# the port at which the clients will connectclientPort=2181server.1=server1:2888:3888server.2=server2:2888:3888

以上配置在server1,server2都进行操作,配置完之后依次启动zookeeper,日志中的java.net.ConnectException: Connection refused在

所有zookeeper启动之后,就不会出现了,不用理会该异常。


SolrCloud配置

上传solr配置至zookeeper,并关联配置文件

cd /data1/solr/examplecloud-scripts/zkcli.sh -cmd upconfig -zkhost server1:2181,server2:2181 -confdir ./solr/collection1/conf -confname myconfcloud-scripts/zkcli.sh -cmd linkconfig -collection collection1 -confname myconf -zkhost server1:2181,server2:2181

重新上传配置,操作如下:

cloud-scripts/zkcli.sh -cmd upconfig -zkhost server1:2181,server2:2181 -collection collection1 -confname myconf -solrhome ./solr -confdir ./solr/collection1/conf


配置solrCloud的solr.xml文件,如下:

<?xml version="1.0" encoding="UTF-8" ?><solr persistent="true" sharedLib="lib">  <cores defaultCoreName="collection1" adminPath="/admin/cores" zkClientTimeout="20000" hostPort="8080" hostContext="solr">    <core shard="shard1" instanceDir="collection1_shard1_replica_2/" name="collection1_shard1_replica_2" collection="collection1"/>    <core shard="shard2" instanceDir="collection1_shard2_replica_2/" name="collection1_shard2_replica_2" collection="collection1"/>  </cores></solr>
依次配置完server1,server2的solr.xml文件,配置tomcat的bin/catalina.sh,加入以下参数

JAVA_OPTS='-DzkHost=10.39.32.40:2181,10.39.32.43:2181'

tomcat、solr和zookeeper就是这样被关联起来的。

至此,SolrCloud已经搭建完成,依次启动tomcat。

访问server1:8080/solr/,初次访问需要创建分片数据,操作如下

curl 'http://server1:8080/solr/admin/collections?action=CREATE&name=collection1&numShards=3&replicationFactor=3&maxShardsPerNode=3'

name:数据集名称
numShards:分片数
replicationFactor:每个分片的复本数
maxShardsPerNode:每个Solr服务器节点上最大分片数


配置过程遇到的问题,可google来查询错误,首选stackoverflow 的解决方案,多查看日志文件,WARN会是SolrCloud配置失败的原因。

下一步就开始学习第三方JAR的拓展、CoreAdmin的使用等基本操作。




原创粉丝点击