PRELOADER

当前文章 : 《solrCloud配置》

5/5/2019 —— 

解压service安装脚本

命令:

1
tar xzf solr-7.5.0.tgz solr-7.5.0/bin/install_solr_service.sh --strip-components=2

安装solr service

命令:

1
sudo bash ./install_solr_service.sh solr-7.5.0.tgz -i /home/solr -d /home/solr/solr -u root -s solr -p 8983

  • -i 解压solr安装文件夹
  • -d 用于保存solr可写文件、配置信息以及log、pidfile的路径
  • -p 端口,默认8983
  • -s 服务名,默认solr
  • -u Solr文件的用户和执行用户,默认solr。如果solr不存在,则会创建
  • -n 安装后不要启动solr服务

    配置solr.in.sh

  1. 去除SOLR_JAVA_HOME的#注释,并修改为:
    SOLR_JAVA_HOME=”/home/java/jdk1.8.0_191”
  2. 去除SOLR_JAVA_MEM的#注释,根据机器实际情况修改,也可不改默认为:
    SOLR_JAVA_MEM=”-Xms512m -Xmx512m”
    3.去除 GC_LOG_OPTS=”-verbose:gc -XX:+PrintHeapAtGC -XX:+PrintGCDetails \
    -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime”的#注释
  3. 去除ZK_HOST前的#号注释并修改为
    ZK_HOST=”centeros1:2181,centeros2:2181,centeros3:2181/solr”
  4. 去除SOLR_HOST前#注释修改为
    SOLR_HOST=”centeros3”
    注意:SOLR_HOST需要配置为每台节点自己的HOST NAME
  5. 去除SOLR_TIMEZONE前#注释修改为SOLR_TIMEZONE=”UTC+8”
  6. 去除SOLR_OPTS前#注释,修改为:
    SOLR_OPTS=”$SOLR_OPTS -Dsolr.directoryFactory=HdfsDirectoryFactory \
    -Dsolr.lock.type=hdfs \
    -Dsolr.hdfs.confdir=/home/hadoop/hadoop-3.1.1/etc/hadoop \
    -Dsolr.hdfs.home=hdfs://hadoop/solr”
    Dsolr.hdfs.confdir为hadoop配置文件路径
    Dsolr.hdfs.home中的hdfs://hsdoop需要和hadoop配置中的core-site.xml中的fs.defaultFS保持一致
  7. 去除SOLR_ULIMIT_CHECKS的#号注释修改为SOLR_ULIMIT_CHECKS=false

配置solr.xml

修改各个节点的solr.xml,将${host: }修改为
${host:centeros3}
注意:centeros3为各个节点的HOST NAME

配置solrconfig.xml

替换原有的directoryFactory配置

1
2
3
4
5
6
7
8
9
10
11
12
13
<directoryFactory name="DirectoryFactory" class="solr.HdfsDirectoryFactory">   
<str name="solr.hdfs.confdir">/home/hadoop/hadoop-3.1.1/etc/hadoop</str>
<str name="solr.hdfs.home">hdfs://hadoop/solr</str>
<bool name="solr.hdfs.blockcache.enabled">true</bool>
<int name="solr.hdfs.blockcache.slab.count">1</int>
<bool name="solr.hdfs.blockcache.direct.memory.allocation">true</bool>
<int name="solr.hdfs.blockcache.blocksperbank">16384</int>
<bool name="solr.hdfs.blockcache.read.enabled">true</bool>
<bool name="solr.hdfs.blockcache.write.enabled">true</bool>
<bool name="solr.hdfs.nrtcachingdirectory.enable">true</bool>
<int name="solr.hdfs.nrtcachingdirectory.maxmergesizemb">16</int>
<int name="solr.hdfs.nrtcachingdirectory.maxcachedmb">192</int>
</directoryFactory>

替换lockTyp的配置

1
<lockType>${solr.lock.type:hdfs}</lockType>

启动solr服务

  • 启动命令:/home/solr/solr-7.5.0/bin/solr start –force
  • 查看状态:/home/solr/solr-7.5.0/bin/solr status
  • 关闭服务:/home/solr/solr-7.5.0/bin/solr stop -force

配置中文分词器

下载jar包、配置扩展字典

  1. ik-analyzer-solr5-5.x.jar
  2. solr-analyzer-ik-5.1.0.jar

IK配置文件 IKAnalyzer.cfg.xml、ext.dic、stopword.dic

配置IKAnalyzer.cfg.xml

1
2
3
4
5
6
7
8
9
<?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">ext.dic;</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">stopword.dic;</entry>
</properties>

准备IK中文分词器环境

把IK中文分词器架包复制到solr项目的WEB-INF/lib目录下
把IK分词器相关配置文件复制到solr项目WEB-INF/classes/ 目录下

配置managed-schema

添加IK分词

1
2
3
4
5
6
7
8
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="false"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="false"/>
</analyzer>
</fieldType>

把需要分词的字段设置为text_ik

1
2
3
<field name="text" type="text_ik" indexed="true" stored="true" multiValued="false" omitNorms="true"/>
<field name="author" type="string" indexed="true" stored="false"/>
<field name="title" type="text_ik" indexed="true" stored="false"/>

提交配置到ZK

命令:

1
2
3
4
./zkcli.sh -zkhost centeros1:2181,centeros2:2181,centeros3:2181 -cmd  putfile  zk地址  本地地址
例:
./zkcli.sh -zkhost centeros1:2181,centeros2:2181,centeros3:2181 -cmd putfile /solr/configs/_default/managed-schema
/home/solr/solr-7.5.0/server/solr/configsets/_default/conf/managed-schema