1.在zookeep集群配置好的情况下,来配置solr集群,先展示一下成功后的图片:
下面正式开始干吧!
2. 首先第一步:
2.1建好目录
mkdir -p /export/servers
Servers目录用来安装tomcat服务器
mkdir -p /export/software
Software用来安装jdk,solr安装包
mkdir -p /export/solr_home
Solr_home用来关联solr.war(后面会说到)
2.2上传solr的jar包,到/export/software,然后解压solr-4.10.2
2.3复制solr-4.10.2下的solr.war到tomcat的目录下
cp solr-4.10.2/example/webapps/solr.war /usr/local/src/tomcat/apache-tomcat-7.0.57mcat/apache-tomcat-7.0.57/webapps/
2.4启动tomcat,/export/servers/tomcat/bin/startup.sh,然后关闭tomcat,/export/servers/tomcat/bin/shutdown.sh,把solr.war删除,rm -rf solr.war,然后进入solr工程,修改web.xml配置文件,使solrhome指向/export/solr_home
vim /usr/local/src/tomcat/apache-tomcat-7.0.57/webapps/ROOT/WEB-INF/web.xml
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/export/software/solr_home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
2.5复制solr-4.10.2下的example中solr依赖的日志jar包复制到,tomcat下的solr工程中
cp /export/software/solr-4.10.2/example/lib/ext/*.jar /usr/local/src/tomcat/apache-tomcat-7.0.57/webapps/ROOT/WEB-INF/lib/
2.6复制solr-4.10.2下的collection1,contrib, dist, solr.xml复制到solr_home下,其中solr.xml是solr集群的时候需要配置的,暂时可以先不用管solr.xml
cp -r /export/software/solr-4.10.2/contrib /export/solr_home/
cp -r /export/software/solr-4.10.2/dist /export/solr_home/
cp -r /export/software/solr-4.10.2/example/solrcolle/collection1 /export/solr_home/
2.7配置solr_home下面的collection1下面的配置文件
vim /export/software/solr_home/collection1/conf/solrconfig.xml
原文件如下:
<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="../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" />
2.8修改solr_home下面的solr.xml配置文件
Cp /export/software/solr-4.10.2/solr/solr.xml /export/solr_home/
Vim solr.xml
<solrcloud>
<str name="host">${host:10.0.0.15}</str>
<int name="hostPort">${jetty.port:8080}</int>
<str name="hostContext">${hostContext:solr}</str>
<int name="zkClientTimeout">${zkClientTimeout:30000}</int>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
2.9启动zookeeper集群,将solr的配置文件上传到zookeeper上
Cd /export/software/solr-4.10.2/example/scripts/cloud-scripts
执行:
./zkcli.sh -zkhost zk05:2181,zk06:2181,zk07:2181 -cmd upconfig -confdir /export/solr_home/collection1/conf/ -confname solrconf
Zk05,zk06,zk07是在配置了hosts的前提下使用的
Vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.15 zk05 vm05
10.0.0.16 zk06 vm06
10.0.0.17 zk07 vm07
可以使用zkCli.sh检查配置文件是否上传到zookeeper上,注意zkcli.sh是solr中的配置命令,c是小写的.zkCli.sh检查配置文件的C是大写的,这个是zookeeper的配置命令.
2.10在/export/servers/tomcat/bin/catalina.sh中修改配置文件
Vim /export/servers/tomcat/bin/catalina.sh
加入: export JAVA_OPTS="-DzkHost=zk05:2181,zk06:2181,zk07:2181"
2.11至此一台solr的集群配置就完成了,你需要在其他几台上也这样配置,当然也可以使用:
Scp -r /export/ 10.0.0.16:/export/
Scp -r /export/ 10.0.0.17:/export/
可能还需要修改vim /etc/hosts
Vim /etc/sysconfig/network
基本上到此为止solr的集群就配置完成了.
2.12最后一步:依次启动三台服务器上的tomcat,/export/servers/tomcat/bin/startup.sh
3. 打开浏览器输入:10.0.0.15:8080/solr/,回车,出现下面的画面,就表示你的solr集群成功了
4. 还可以配置新的集群:
http://10.0.0.15:8080/solr/admin/collections?action=CREATE&name=mycore3&numShards=2&replicationFactor=5&
maxShardsPerNode=8&property.schema=schema.xml&property.config=solrconfig.xml
Name为集群的名称
numShards=2 表示分片数
replicationFactor=5 副本数
maxShardsPerNode=8 单个分片的最大节点数
在浏览器上输入,回车,出现下面的图片,表示你已经成功: