天天看点

solr部署tomcat,整合mysql,中文分词,集群echo 1 >> myid

部署环境:

系统: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.

完成

继续阅读