Solr集群搭建
集群环境准备
操作系统: Centos 6.4
Java 环境: JDK版本1.7
Zookeeper 版本 3.4.5
Solrcloud 版本 4.7.1
Tomcat 7
服务器5台 ,ip 和 hostname 的修改
Ip 192.168.56.11 hostname master
Ip 192.168.56.12 hostname node1
Ip 192.168.56.13 hostname node2
Ip 192.168.56.14 hostname node3
Ip 192.168.56.15 hostname node4
zookeeper 集群的搭建
1)压zookeeper 安装包
tar -zxvf zookeeper-3.4.5.tar.gz
2)进入zookeeper-3.4.5文件夹,创建data 和log
创建目录并赋于写权限
指定zookeeper的数据存放目录和日志目录
3)拷贝zookeeper配制文件zoo_sample.cfg
拷贝zookeeper配制文件zoo_sample.cfg并重命名zoo.cfg
cp /solrcloud/zookeeper-3.4.5/conf/zoo_sample.cfg /solrcloud/zookerper-3.4.5/conf/zoo.cfg
加入 dataDir=/solrcloud/zookeeper-3.4.5/data
dataLogDir=/solrcloud/zookeeper-3.4.5/log
server.1=192.168.56.11:2888:3888
server.2=192.168.56.12:2888:3888
server.3=192.168.56.13:2888:3888
server.4=192.168.56.14:2888:3888
server.5=192.168.56.15:2888:3888
zoo.cfg配制完后如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/solrcloud/zookeeper-3.4.5/data
dataLogDir=/solrcloud/zookeeper-3.4.5/log
clientPort=2181
server.1=192.168.56.11:2888:3888
server.2=192.168.56.12:2888:3888
server.3=192.168.56.13:2888:3888
server.4=192.168.56.14:2888:3888
server.5=192.168.56.15:2888:3888
例如server.1=192.168.56.11 data文件夹下的myid文件内容为1
进入bin
./zkServer.sh start
查看集群状态
./zkServer.sh status 刚启动可能会有错误,集群中其他节点一并起来后就正常了
SolrCloud配置
1)在solrcloud下新建solrhome,并赋于读写权限
2)将上传的solr.4.6.0压缩包解压缩,
tar -zxvf solr-4.6.0.tgz
3)将solr.4.6.0/dist/solr-4.6.0.war 复制到/solrcloud/solrhome 并重命为solr.war
cp /solrcloud/solr-4.6.0/dist/solr-4.6.0.war /solrcloud/solrhome/solr.war
4)将上传的tomcat解压缩
tar -zxvf apache-tomcat-6.0.29.tar.gz
5)进入tomcat bin目录,启动tomcat
cd /solrcloud/apache-tomcat-6.0.29/bin 进入bin目录
./startup.sh 启动tomcat 此时会在tomcat下的conf文件夹下多出一个目录Catalina
cd /solrcloud/apache-tomcat-6.0.29/conf/Catalina/localhost
新建solr.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<Context docBase="/solrcloud/solrhome/solr.war" debug="0" crossContext="false" >
<Environment name="solr/home"
type="java.lang.String"
value="/solrcloud/solrhome"
override="true" />
</Context>
docBase="/solrcloud/solrhome/solr.war" 指定为solrcloud/solrhome下复制出来solr的war包
6)停tomcat 再次启动tomcat, webapps 下边多了解压出来的solr文件夹
进入solr/WEB-INF/ 下修改web.xml
<!--
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/put/your/solr/home/here</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
-->
改为 :
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/solrcloud/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
7)将/solrcloud/solr-4.6.0/example/solr 文件夹下所有东西复制到 /solrcloud/solrhome
cp -r /solrcloud/solr-4.6.0/example/solr/* /solrcloud/solrhome
8)复制solr-4.6.0/example/lib/ext下所有jar包到tomcat 的lib下
cp /solrcloud/solr-4.6.0/example/lib/ext/* /solrcloud/apache-tomcat-6.0.29/lib/
复制 solr-4.6.0/example/resources/log4j.properties 到solr/WEB-INF/class
如果没有class先创建class文件夹,并赋于写权限
cp /solrcloud/solr-4.6.0/example/resources/log4j.properties /solrcloud/apache-tomcat-6.0.29/webapps/solr/WEB-INF/class/
9)启动tomcat 访问 http://localhost:8080/solr 如图,至此单机版solr配制完成
10)配制集群
将zookeeper和tomcat关联
192.168.56.11台机修改tomcat 的 bin目录下catalina.sh文件在第二行加入
JAVA_OPTS="-Dbootstrap_confdir=/solrcloud/solrhome/collection1/conf -Dcollection.configName=myconf -DzkHost=192.168.56.11:2181,192.168.56.12:2181,192.168.56.13:2181,192.168.56.14:2181,192.168.56.15:2181,192.168.56.16:2181 -DnumShards=3"
192.168.56.12-16 , 5台机都修改tomcat 的 bin目录下catalina.sh文件在第二行加入
JAVA_OPTS="-DzkHost=192.168.56.11:2181,192.168.56.12:2181,192.168.56.13:2181,192.168.56.14:2181,192.168.56.15:2181,192.168.56.16:2181"
至此集群配制完毕
创建config 并和 指定primaryconf连接
java -cp .:/opt/solr/tomcat/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost netutel04:2181,netutel05:2181,netutel06:2181 -confdir /opt/solr/libType/collection/conf -confname libType
java -cp .:/opt/solr/tomcat/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -zkhost netutel04:2181,netutel05:2181,netutel06:2181 -collection libInfo -confname libType
创建集群
http://192.168.56.11:8080/solr/admin/collections?action=CREATE&name=libInfo &numShards=3&replicationFactor=3
任何一个ip均可访问
http://192.168.56.11:8080/solr/#/~cloud