solr6安装部署

一、涉及到的软件和环境
jdk1.8.0_92,tomcat8,zookeeper3.4.8,solr6.1.0
(solr6需要jdk8以上环境)
二、安装步骤

  •  安装zookeeper集群

A 下载zookeeper3.4.8
B 解压至/home/zk/zookeeper-3.4.8,建立软链: tar -zxvf zookeeper-3.4.8.tar.gz ; ln -s zookeeper-3.4.8 zookeeper
C更改zk配置
i 拷贝/home/zk/zookeeper/conf/zoo_sample.cfg到同目录下,并重命名为zoo.cfg

cp /home/zk/zookeeper/conf/zoo_sample.cfg /home/zk/zookeeper/conf/zoo.cfg

ii 修改zoo.cfg

dataDir=/home/zk/zkdata/data
dataLogDir=/home/zk/zkdata/logs/
clientPort=2181
#以下配置各个zkcluster的各个node(部署几台zookeeper节点就依次都写上)
server.1=zkServer1:2888:3888
server.2=zkServer2:2888:3888
server.3=zkServer3:2888:3888

iii /home/zk目录下建zkdata/data和zkdata/logs目录
iiii /home/zk/zkdata/data目录下建立名叫myid的文件,内容为int型,表示zkserver的编号(如1,2等)

D 编辑zookeeper启动脚本$ZK_HOME_1/bin/zkServer.sh 详见下方代码块中nohup部分

nohup $JAVA -server -Xms10240m -Xmx10240m -Xmn3840m -Xss256k -XX:+CMSParallelRemarkEnabled -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseCMSCompactAtFullCollection -XX:+CMSClassUnloadingEnabled -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
-cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &

G 关闭zookeeper集群的防火墙以及selinux
service iptables stop
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled 重启
(setenforce 0 不需重启)
H 启动zookeeper 注意每一个zk的node都要启动,否则相互间的通信会报错.
启动命令 sh zookeeper/bin/zkServer.sh start 查看当前节点启动状态 sh zookeeper/bin/zkServer.sh status

  • 安装solrcloud集群

准备包:下载solr6.1.0,网址:http://archive.apache.org/dist/lucene/solr/6.1.0/, 解压solr-6.1.0.tgz压缩包并建立软链: tar –xzvf solr-6.1.0.tgz; ln -s solr-6.1.0 solr

选择容器:solr的部署主流是jetty和tomcat两种,二种容器对于性能上有没有影响暂时还没有深究。tomcat方式我们已经历经多个项目验证,jetty作为标准运行方式,应该也差不了。

  1. jetty部署

solr自带了jetty容器,可以直接启动运行。

1)建立solr_home目录并拷贝solr.xml,solr_home目录下要是没有solr.xml会导致启动不起来

mkdir /home/solr_admin/solr_home;

cp /home/solr_admin/solr/server/solr/solr.xml /home/solr_admin/solr_home/

cd ;cd solr;

指定参数并启动

bin/solr start -cloud -m 16g -s /home/solr_admin/solr_home -z zkServer1:2181,zkServer2:2181,zkServer3:2181

(

-p参数可以改端口,jetty默认为8983

-s参数指明solrhome,不然默认会指向/home/solr_admin/solr/server/solr 目录

solrCloud example (start Solr running in SolrCloud mode using localhost:2181 to connect to ZooKeeper, with 1g max heap size and remote Java debug options enabled):

./solr start -c -m 4g -z localhost:2181 -a "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044"

)


依次启动各solr机器,

查看状态: bin/solr status

如果发现当前solr节点有问题,结束命令:bin/solr stop  重启命令:bin/solr restart

执行ps-ef|grep java 命令会发现 当前solr的日志目录是在 /home/solr_admin/solr/server/logs下面,后续会讲把日志配置到统一的地方

访问地址:http://solrServer1:8983/solr/#/      8983端口取决于启动时的-p参数,默认是8993

2.tomcat部署

A 下载tomcat并解压
B 解压solr6.1.0,解压后的包的文件夹结构与以前的版本不同的是,5.0版本的solr的部署包solr.war放在了server文件夹中,而6.1.0的版本已经是解压在server/solr-webapp/webapp/ 下了。
C 将server/solr-webapp/webapp/下面的内容(solr5  /server/webapps/solr.war)拷贝到tomcat的webapps中: cp –r server/solr-webapp/webapp/* /usr/local/tomcat8/webapps/solr/

D solr6执行完C步骤之后忽略此步骤,solr5部署才需要 进入到到tomcat中,对war进行解压,然后删除war包。 
cd /usr/local/tomcat7/webapps
unzip solr.war –d solr
删除solr.war文件。(不然每次启动tomcat都会发布一次)

E 设置solrhome,在$HOME/建立solr_home文件夹作为solrhome:
mkdir ~/solr_home
在该路径下放置solr.xml,内容如下:(从solr4.3开始,solr为solr.xml保有两种不同的格式,传统模式如下,发现模式如上,但是从solr5.0开始,传统模式被废弃,强制使用发现模式)
(

传统模式,4.3版本使用
<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="true">
<cores adminPath="/admin/cores" zkClientTimeout="20000" hostPort="8080">
</cores>
</solr>
发现模式,5.0及以上版本使用
<?xml version="1.0" encoding="UTF-8" ?>
<solr>
<solrcloud>
<str name="host">${host:}</str>
<int name="hostPort">${tomcat.port:8080}</int> //此端口号取决于部署solr.war包的tomcat的端口号
<str name="hostContext">${hostContext:solr}</str>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
<int name="zkClientTimeout">${zkClientTimeout:30000}</int>
<int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int>
<int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int>
</solrcloud>
<shardHandlerFactory name="shardHandlerFactory"
class="HttpShardHandlerFactory">
<int name="socketTimeout">${socketTimeout:600000}</int>
<int name="connTimeout">${connTimeout:60000}</int>
</shardHandlerFactory>
</solr>

)

cp /tmp/solr-6.1.0/server/solr/solr.xml ~/solr_home/

H 配置tomcat

修改$TOMCAT_HOME_1/bin/catalina.sh插入一下配置
线上 
JAVA_OPTS=" -server -Xms16384m -Xmx16384m -Xmn6144m -Xss256k -XX:PermSize=96m -XX:MaxPermSize=96m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=85 -XX:+DisableExplicitGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=5 -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Dsolr.solr.home=/home/app_admin/solr_home -DzkHost=zkServer1:2181,zkServer2:2181,zkServer3:2181,zkServer4:2181"

测试环境
JAVA_OPTS=" -server -Xms1024m -Xmx1024m -Xss256k -XX:PermSize=96m -XX:MaxPermSize=96m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=85 -XX:+DisableExplicitGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=5 -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Dsolr.solr.home=/home/mallsearch/solrhome -DzkHost=zkServer1:2181,zkServer2:2181,zkServer3:2181,zkServer4:2181"

I 启动tomcat,部署就此完成,打开浏览器访问 http://solrServer1:8080/solr/#/ //此端口号取决于部署solr.war包的tomcat的端口号

 

3.完善相关配置

1)配置solrhome

如果在jetty或者tomcat的启动参数里制定了-s 或者solr.home参数的话,此步骤可以不做

进入到

jetty版:/home/solr_admin/solr/server/solr-webapp/webapp/WEB-INF/

tomcat版:~/tomcat8/webapps/solr/WEB-INF/

修改web.xml中的solr/home为上一步骤所建solr_home的文件夹目录 
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/app_admin/solr_home/</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>

2)日志

拷贝solr相关的依赖jar包(solr-6.1.0\server\lib\ext\里面的所有jar包)到~/tomcat/webapps/solr/WEB-INF/lib中
一共5个,是solr的独立日志处理模块;

jetty命令:cp –r * ~/solr/server/solr-webapp/webapp/WEB-INF/lib/

tomcat命令:cp –r * ~/tomcat/webapps/solr/WEB-INF/lib

在上面的 WEB-INF/下新建一个classes目录,将example/resources下的log4j.properties文件复制到该classes目录中,否则日志模块无法正常工作

3)分词

a、复制ik的jar包到WEB-INF/lib/下,否则分词模块无法运行

之前电商环境我部署的solr5.2.0版本是 IKAnalyzer-5.0.jar 和 solr-analyzer-ik-5.1.0.jar(网上下载的针对solrIK分词问题更改后自己打的jar包)两个jar包

solr-6.1.0/dist目录下有solr-analysis-extras-6.1.0.jar和solr-analytics-6.1.0.jar两个jar包 还有网上下载 IKAnalyzer-5.0.jar

b、在WEB-INF/classes文件夹下新增一个文件:IKAnalyzer.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    <comment>IK Analyzer 扩展配置</comment>
    <!--用户可以在这里配置自己的扩展字典-->
    <entry key="ext_dict">my.dic;</entry> 

    <!--用户可以在这里配置自己的扩展停止词字典-->
    <entry key="ext_stopwords">stopword.dic;</entry> 

</properties>

说明:

my.dic即为扩展分词库,分词库可以为多个,以分号隔开即可。停止词库一样。

c、新增my.dic文件。文件格式必需是:无BOM的UTF-8格式,示例内容为:

火影忍者 

分词器的词典文件格式是无BOM 的UTF-8 编码的中文文本文件,文件扩展名不限。词典中,每个中文词汇独立占一行,使用\r\n 的DOS 方式换行。(注,如果您不了解什么是无BOM 的UTF-8 格式, 请保证您的词典使用UTF-8 存储,并在文件的头部添加一空行)。您可以参考分词器源码org.wltea.analyzer.dic 包下的.dic 文件。词典文件应部署在Java 的资源路径下,即ClassLoader 能够加载的路径中。(推荐同IKAnalyzer.cfg.xml 放在一起).

stopword.dic同理。

d、保存,重启solr。

使用了新的分词,需要重新建索引数据。

时间: 2024-08-11 05:35:14

solr6安装部署的相关文章

Python实现一键安装部署LNMP环境

最近一直在学Python,东西比较多,时间持续的也比较长,为了能够学以致用,想到了原来写过的shell一键安装部署LNMP脚本,既然shell能写,Python也一定能写,就用学到的知识写了下面这个版本,这可能并不是最优版本,等学到更多东西的时候再进行优化升级! 环境介绍: Python 2.6.6 Centos 6.5 nginx 1.10.1 mysql 5.6.34 php 5.3.3 代码如下: #!/bin/env python import os import sys def ent

linux运维之weblogic12.1.3安装部署

安装最新的weblogic版本,版本号为 12.1.X(12.1.2,12.1.3).开始以为和旧版安装一样,使用控制台的方式,下载bin文件,然后一步步在console执行下来就行了.万万没想到,从12C版本后,bin文件不提供了,改成全系统通用的jar文件 (generic.jar).试了半天原来那种安装方式不能用了,非得用图形界面安装.由于服务器只能远程登录,于是各种百度.各种找材料,最后终于找到一种静默方式的安装.请看下文. weblogic12C各版本所支持的JDK版本: fmw_12

Sqlserver2008安装部署文档

Sqlserver2008部署文档 注意事项: 如果你要安装的是64位的服务器,并且是新机器.那么请注意,你需要首先需要给64系统安装一个.net framework,如果已经安装此功能,请略过这一步.   具体安装.net framework的方法是:在图标<我的电脑>上右击选择<管理>,打开以后选择<功能>选项卡,如下图所示,然后点击添加功能,勾选..net framework,然后一直点击下一步安装即可. 安装的过程中,需要注意如果你要安装的服务器有外挂或者附加的

redis以及php的redis扩展安装部署

一.redis 安装部署: tar xf redis-3.2.8.tar.gz cd redis-3.2.8 make MANIFESTO=jemalloc make PREFIX=/usr/local/redis-3.2.8 install ln -s /usr/local/redis-3.2.8/ /usr/local/redis echo "export PATH=/usr/local/redis/bin:$PATH" >> /etc/profile find / -

ELK部署logstash安装部署及应用(二)

Logstash 安装部署注意事项: Logstash基本概念: logstash收集日志基本流程: input-->codec-->filter-->codec-->output input:从哪里收集日志. filter:发出去前进行过滤 output:输出至Elasticsearch或Redis消息队列 codec:输出至前台,方便边实践边测试 数据量不大日志按照月来进行收集 如果通过logstash来采集日志,那么每个客户端都需要安装logstash 安装需要前置系统环境

Zookeeper安装部署

Zookeeper安装部署 Zookeeper部署(单机模式)   下载ZooKeeper ü  http://zookeeper.apache.org/   解压 ü  tar -zxvf zookeeper-3.4.5.tar.gz   配置.在conf目录下创建一个配置文件zoo.cfg: tickTime=2000 dataDir=/home/hadoop/bigdata/zookeeper/datadataLogDir=/home/hadoop/bigdata/zookeeper/da

虚拟化Vmware之安装部署vCenter

vCenter是vSphere解决方案的基础物理架构核心,可以提供如访问控制.性能监控和配置功能等,并且可以将多台ESXi主机资源集中,使这些资源在整个数据中心的虚拟机之间共享.vCenter是一种服务,充当连接网络的ESXi主机的中心管理员. 安装部署vCenterer 一.实验环境 自己的真实机当作客户机 1.首先将DC/DNS(benet.com)服务器的防火墙关闭 2.真实机和虚拟机都设在同一网段 DNS指向DNS服务器. 安装高版本的flash 二.配置sql server    我在

安装部署Phxsql

.需求:公司某软件使用phxsql已经部署在3个机房,现需要在新的机房增加一个phxsql节点,以下为操作过程,因为保护隐私把4台IP用 1.1.1.1 2.2.2.2 3.3.3.3 新的ip为4.4.4.4 .安装Phxsql需要Python2.7版本,Centos默认为2.6版本,需要进行升级 cd /opt wget --no-check-certificate https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz tar

CentOS 6.5 安装部署iSCSi共享存储

 CentOS 6.5 安装部署iSCSi共享存储 一.前言 1.什么是iSCSI? iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择.iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料. iSCSI:Internet 小型计算机系统接口 (iSCSI: