部署环境:
系统:centos6.5(不限制)
solr:solr-7.1.0
tomcat:8.5.15(至少要8版本)
jdk:1.8.0(至少要8版本)
中文分词:mmseg4j-core-1.10.0(可配置IK,IK可以灵活添加扩展包)
solr环境部署以及创建core:
1.
首先把solr-7.1.0\server\solr-webapp中的webapp目录拷贝到
apache-tomcat-8.5.15下的webapps目录里,重命名为solr;
2.
将solr-7.1.0\server\lib\ext下的所有jar包,以及solr-7.1.0\server\lib下以metrics开头的 jar包
复制到apache-tomcat-8.5.15\webapps\solr\WEB-INF\lib下;
3.
在apache-tomcat-8.5.15\webapps\webapp\WEB-INF中,新建classes文件夹,
将solr-7.1.0\server\resources下的log4j.properties文件拷贝到里面,修改里面的
solr.log=输出日志的路径(请使用/分割,注意不要有中文,避免乱码问题);
4.
然后将solr-7.1.0\server中的solr目录拷贝到E盘,重命名为solrhome;
5.
修改apache-tomcat-8.5.15\webapps\solr\WEB-INF中的web.xml文件:
打开如下注释,修改为solrhome路径(修改web.xml文件,修改env-entry-value的值为 solrhome的绝对位置)
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>E:/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
并注释掉如下代码
<!--
<security-constraint>
<web-resource-collection>
<web-resource-name>Disable TRACE</web-resource-name>
<url-pattern>/</url-pattern>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Enable everything but TRACE</web-resource-name>
<url-pattern>/</url-pattern>
<http-method-omission>TRACE</http-method-omission>
</web-resource-collection>
</security-constraint>
-->
6.
solr支持zookeeper搭建集群配置,在这里我们先注释掉,在solrhome文件夹下的solr.xml 文件中,
7、
在sorlhome文件夹下创建【my_solr】文件夹。
8、
将【solr-7.1.0\example\example-DIH\solr\solr】下的conf文件夹以及core.properties拷贝到【my_solr】文件夹下。 并添加core.properties配置,内容如下:
name=my_solr
整合mysql
1、
首先我们在mysql中找个表
2、
将mysql的驱动jar包,copy到(C:\tomcat8\webapps\solr\WEB-INF\lib)下,
3、
修改my_solr文件夹下的conf文件夹下的solr-data-config.xml文件:
echo 1 >> myid
3.
把zookeeper1下conf目录下的zoo_sample.cfg文件复制一份改名为zoo.cfg,并做如下修 改
4.
启动zookeeper。进入zookeeper1/bin目录下。
启动zookeeper:./zkServer.sh start
关闭:./zkServer.sh stop
查看状态:./zkServer.sh status
如果查看状态,出现以下提示说明启动成功
[[email protected] solrcloud]# zookeeper1/bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/solrcloud/zookeeper1/bin/../conf/zoo.cfg
Mode: follower <====或者 (leader)
(注意:如果只启动一个zookeeper的话,因为找不到其他节点会报错,不用管它,把另外两个起起来就好了)
solr集群的搭建
1.
搭建4个单机版的solr实例,修改各自的tomcat端口,模拟集群环境
(根据上述教程复制4个即可,也可以把通用的依赖jar包提出来放到一个通用目录)
2.
将一个sole_home配置上传到zookeeper集群
切到 solr文件包解压出来的 solr-7.1.0/server/scripts/cloud-scripts 目录下
运行:
./zkcli.sh -zkhost 192.168.1.3:2181,192.168.1.3:2182,192.168.1.3:2183 -cmd upconfig -confdir /opt/tomcat/zsolr_19001/webapps/solr_home/my_solr/conf -confname myconf
-zkhost:指定zookeeper集群的ip地址,端口,用逗号分隔
-cmd:运行指令(upconfig)上传配置文件
-confdir:指定被上传的配置文件路径
-confname:指定zookeeper中上传配置文件的名称
注意:这里my_solr是配置好的一个core,只需要将底下的conf文件夹上传即可,上传完之后这个,zookeeper会将这个配置文件推给其他3个solr实例
查看配置文件是否上传成功:
[[email protected] bin]# ./zkCli.sh
Connecting to localhost:2181
[zk: localhost:2181(CONNECTED) 0] ls /
[configs, zookeeper]
[zk: localhost:2181(CONNECTED) 1] ls /configs
[myconf]
[zk: localhost:2181(CONNECTED) 2] ls /configs/myconf
[admin-extra.menu-top.html, currency.xml, protwords.txt, mapping-FoldToASCII.txt, _schema_analysis_synonyms_english.json, _rest_managed.json, solrconfig.xml, _schema_analysis_stopwords_english.json, stopwords.txt, lang, spellings.txt, mapping-ISOLatin1Accent.txt, admin-extra.html, xslt, synonyms.txt, scripts.conf, update-script.js, velocity, elevate.xml, admin-extra.menu-bottom.html, clustering, schema.xml]
[zk: localhost:2181(CONNECTED) 3]
3.
修改solr_home下的solr.xml文件,指定当前实例运行的ip地址及端口号。
4.
修改每一台solr的tomcat 的 bin目录下catalina.sh文件中加入DzkHost指定 zookeeper服务器地址:
JAVA_OPTS=”-DzkHost=192.168.1.3:2181,192.168.1.3:2182,192.168.1.3:2183” 灰色字体的ip表示 zookeeper集群的ip以及端口号
(可以使用vim的查找功能查找到JAVA_OPTS的定义的位置,然后添加)
5.
重新启动tomcat
如果发现noCodeName的报错
6.
完成