zoukankan      html  css  js  c++  java
  • 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.0serverlibext里面的所有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 编码的中文文本文件,文件扩展名不限。词典中,每个中文词汇独立占一行,使用  的DOS 方式换行。(注,如果您不了解什么是无BOM 的UTF-8 格式, 请保证您的词典使用UTF-8 存储,并在文件的头部添加一空行)。您可以参考分词器源码org.wltea.analyzer.dic 包下的.dic 文件。词典文件应部署在Java 的资源路径下,即ClassLoader 能够加载的路径中。(推荐同IKAnalyzer.cfg.xml 放在一起).

    stopword.dic同理。

    d、保存,重启solr。 

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

  • 相关阅读:
    uni-app下[manifest.json][h5.router.base]优先于vue.config.js下的publicPath
    vue.config.js[publicPath],Webpack[publicPath],process.env[BASE_URL],vue.router[base],uni-app[manifest.json][h5.router.base]
    vue中mode,.env,.env[mode],配置文件,process.env.NODE_ENV
    vue使用bpmn流程管理器
    element-ui 调试 el-select不能正常工作 不报错
    VUE用浏览器调用USB摄像头
    2020最新版《神经网络与深度学习》中文版
    《推荐系统实践》 高清版 下载
    《推荐算法在业界的应用实践合集》 PDf 下载
    《机器学习》周志华-西瓜书 高清 PDF 下载
  • 原文地址:https://www.cnblogs.com/cl1234/p/5644741.html
Copyright © 2011-2022 走看看