solr版本:4.5.1java
当前我使用三台服务器搭建集群分别是192.168.0.1八、192.168.0.1九、192.168.0.20,其中18为主服务器,1九、20为从服务器,而且在20服务器安装zookeepernode
1、在tomcat7中部署solr4apache
一、首先从官网下载solr4.5.1版本到三台服务器bootstrap
二、tar -zxvf solr-4.5.1.tgz (解压solr)vim
三、cd solr-4.3.1(进入solr文件夹)tomcat
四、mkdir /home/solr (在home目录下面建立solr文件夹,个人tomcat也是安装在home目录下)服务器
五、复制solr-4.5.1/example/solr 目录下的collection1目录和solr.xml、zoo.cfg到/home/solr目录下socket
六、到这里,须要用到solr的war包。在solr-4.5.1/dist/ 下有 solr-4.5.1.war包将其更更名称为solr.war,接下来两种方法能够任选其一,由于solr4中将日志的jar包单独分离出来放到了solr-4.5.1/example/lib/ext目录下。因此在部署的时候须要将这些jar包加进去,加进去的方法有两种:ide
(a)将solr.war更改后缀名为solr.zip,解压后名称为solr将solr-4.5.1/example/lib/ext下的五个日志包放到solr/WEB-INF/lib目录下,从新打包成war文件。oop
(b)不用更改solr.war,直接将五个日志包放到tomcat的lib目录下
我比较倾向于第一种
七、将solr.war复制到 /home/solr目录
八、建立tomcat/conf/Catalina/localhost/solr.xml 文件,文件内容(若是目录没有也能够建立):
<Context docBase="/home/solr/solr.war" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="/home/solr" override="true" />
</Context>
九、启动tomcat
十、输入http://127.0.0.1:8080/solr 若是能够正常看到solr 的目录。则表示正确部署。在firfox下打开此目录solr4的js对IE的支持很差。
2、安装zookeeper
十一、官网下载zookeeper http://www.apache.org/dyn/closer.cgi/zookeeper/ 本人使用 zookeeper-3.4.5 将其安装在20服务器上
十二、tar -zxvf zookeeper-3.4.5.tar 解压zookeeper
1三、mkdir /home/zookeeper/data 建立zookeeper数据存放目录
1四、cd /home/zookeeper-3.4.5/conf 进入解压后的zookeeper目录
1五、 vim zoo.cfg 修改zookeeper配置文件 内容以下
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/zookeeper/data (此目录用于指定zookeeper数据存放目录。就是刚刚建立的那个目录)
clientPort=2181
1六、修改完成后启动zookeeper 进入bin目录
sudo zkServer.sh start
3、配置solr集群
1七、先配置主服务器192.168.1.18
vim /home/tomcat/bin/catalina.sh 在图片所示位置加入如下代码
JAVA_OPTS="$JAVA_OPTS -Dbootstrap_confdir=/home/www/sfbest/solr/collection1/conf -Dcollection.configName=myconf -DzkHost=192.168.1.20:2181 -DnumShards=3"
注:其中DzkHost是用来指定zookeeper服务器的ip和端口。Dnumshareds用来指定当前集群中分片数 confdir目录指定全部的索引库都从collection1索引库中同步字段
1八、配置从服务器 19 和20
vim /home/tomcat/bin/catalina.sh 在和上图一样的位置加入
JAVA_OPTS="-DzkHost=10.103.14.20:2181"
1九、保存后,依次启动tomcat服务器 在firfox中输入网址
http://192.168.1.18:8080/solr 看到如下界面即说明集群搭建成功,此图片中我添加了多个索引库。因此显示多个。正常状况下显示一个collection1即表示正常
20、写入后使用界面进行数据查询获得如下数听说明数据正常
补充点:
修改solr.xml
<solr>
<solrcloud>
<str name="host">${host:}</str>
<int name="hostPort">7080</int>
<str name="hostContext">${hostContext:solr}</str>
<int name="zkClientTimeout">${zkClientTimeout:15000}</int>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
<str name="zkHost">hadoop.datanode3.com:4181</str>
</solrcloud>
<shardHandlerFactory name="shardHandlerFactory"
class="HttpShardHandlerFactory">
<int name="socketTimeout">${socketTimeout:0}</int>
<int name="connTimeout">${connTimeout:0}</int>
</shardHandlerFactory>
</solr>
官网参考:
http://wiki.apache.org/solr/SolrCloudTomcat(在tomcat下搭建solr集群)
http://wiki.apache.org/solr/SolrTomcat(在tomcat下搭建solr)