Solr集羣搭建java
操做系統: Centos 6.4node
Java 環境: JDK版本1.7web
Zookeeper 版本 3.4.5apache
Solrcloud 版本 4.7.1bootstrap
Tomcat 7tomcat
Ip 192.168.56.11 hostname master服務器
Ip 192.168.56.12 hostname node1app
Ip 192.168.56.13 hostname node2webapp
Ip 192.168.56.14 hostname node3ide
Ip 192.168.56.15 hostname node4
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 剛啓動可能會有錯誤,集羣中其餘節點一併起來後就正常了
tar -zxvf solr-4.6.0.tgz
cp /solrcloud/solr-4.6.0/dist/solr-4.6.0.war /solrcloud/solrhome/solr.war
tar -zxvf apache-tomcat-6.0.29.tar.gz
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包
進入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>
cp -r /solrcloud/solr-4.6.0/example/solr/* /solrcloud/solrhome
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/
將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都可訪問