zoukankan      html  css  js  c++  java
  • Solr产品化部署

    1.下载solr-6.4.1.tgz到任意目录

    2.执行tar xzf solr-6.4.1.tgz solr-6.4.1/bin/install_solr_service.sh --strip-components=2 解压install_solr_service.sh安装脚本到当前目录

    3.可以运行sh install_solr_service.sh solr-6.4.1.tgz -help 查看帮助,一些常用的选项:
    使用-i 指定安装路径(默认/opt/solr-XXXX,通过软连接/opt/solr指向这个位置)
    使用-d 指定变量路径(默认/var/solr,运行时只修改/var/solr中的东西,/opt/solr中的东西不变,但是如果要安装插件jar包会安装到/opt/solr,这点需要注意,后续如果要升级,直接替换后可能需要手工复制插件jar包)
    使用-u 指定solr启动用户,运行solr不建议用root用户,因此solr默认会使用名为 solr 的用户(没有则创建),可以用-u 自定义用户,这个用户会是/opt/solr和/var/solr目录的owner,也是启动的solr服务进程的owner

    示例指令:
    创建一个名为solr-8001的实例,使用8001端口,
    sh install_solr_service.sh solr-6.4.1.tgz -p 8001 -s solr-8001 -u solr -n

    4.执行了上面的命令之后,solr会生成下面的目录结构(假设生成一个名为solr-8001的实例):
    /opt/solr-6.4.1 //solr原始安装文件,多实例共用一个,运行期间不会修改
    /opt/solr-8001 -> /opt/solr-6.4.1 //每个实例对应一个,指向原始安装文件的软连接,升级用

    /var/solr-8001 //每个实例对应一个,存放运行时文件
    --data
    --log4j.properties
    --logs

    /etc/default/solr-8001.in.sh //每个实例对应一个,存放配置文件

    /etc/init.d/solr-8001 //每个实例对应一个,solr服务文件,把solr作为Linux的服务,可以将solr作为服务来管理,如service solr-8001 start (solr-xxx为示例名),启动服务时默认使用solr.in.sh中配置的RUNAS作为进程的owner,如果没设置就作为root启动(不推荐),service 除了start 还支持stop、restart、status命令。默认将solr服务设为自动启动,因此重启服务器后不需要启动solr。

    5.solr.in.sh配置
    生成示例后需要手动修改/etc/default/solr-8001.in.sh来做一些设置,主要有下面设置:

    1. 内存大小:建议不大于32G,如果到达32G,则建议分单机多实例。SOLR_JAVA_MEM="-Xms31744m -Xmx31744m"
    2. GC配置:solr有预配置的gc设置,起手用默认的gc配置,发现问题再手动修改。
    3. ZK配置:如果使用外部zk,只需要在solr.in.sh里配置ZK_HOST="zk1:2181,zk2:2181,zk3:2181/solr",/solr考虑到solr可能和其他应用共享zk,因此做znode隔离,通过配置/solr将solr作为znode根目录。需要注意的是需要在zk根目录下手动建立/solr目录(zkCli下执行create /solr "solr"),否则启动solr会报错。
    4. 时区配置:solr默认使用UTC时区,比中国时间早8小时。需要设置SOLR_TIMEZONE="Asia/Shanghai"
    5. HOST配置:如果每个节点都配置了域名,可以在solr.in.sh中标明当前节点的域名,这样zk在管理集群状态时使用域名管理:SOLR_HOST="dandelion1"。
    6. 日志路径配置:如果执行安装脚本时设置了-d 参数手动指定了动态文件的路径,可能需要设置SOLR_LOGS_DIR="path"指定日志的路径到生成的logs文件夹,否则日志会生成到solr的安装路径。这个怀疑是solr安装脚本的一个bug。

    6.日志配置

    solr默认记录日志是按大小滚动分割文件的,而我们一般习惯按日期分割,可以通过配置/var/solr-8001/log4j.properties修改solr的日志配置

    7.如何添加另一个实例

    重复操作3、4、5步即可。

    8.如果后面的索引配置文件里使用到插件,需要复制插件jar包到/opt/solr-6.4.1/server/solr-webapp/webapp/WEB-INF/lib(如果索引的配置文件中使用了插件) 

    9.使用/opt/solr-6.4.1/server/scripts/cloud-scripts/zkcli.sh将需要的配置文件传到zk,主要有solr.xml、schema.xml、solrconfig.xml

    10.创建collection(下面的命令只创建shard不创建replica,创建后手动通过界面或命令给shard创建replica。因为在单机多实例的情况下,如果让solr自动分配,可能会把一个shard的多个replica分配到一台机器上的多个实例造成单点问题):

    http://dandelion1:8001/solr/admin/collections?action=CREATE&name=meixin_group&router.name=compositeId&numShards=4&replicationFactor=1&maxShardsPerNode=1&collection.configName=meixin_group&createNodeSet=&autoAddReplicas=false

  • 相关阅读:
    python移动文件,将一个文件夹里面的文件移动到另一个文件夹
    python中的os.path.join, os.path.splitext, os.path.split, split()函数用法
    python遍历目录下的所有目录和文件, python解析json文件, python-opencv截取子图
    Python对文件进行批量重命名
    python遍历目录下的所有目录和文件,并用opencv从mp4文件中抽帧得到图片
    python中的os.walk()方法学习
    ubuntu16.04 安装caffe时出现 .build_release/tools/caffe: error while loading shared libraries: libcudart.so.10.0: cannot open shared object file: No such file or directory
    caffe编译过程中的错误: nvcc fatal : Unsupported gpu architecture 'compute_20'
    Java字符串为""和null的区别
    一次docker中的nginx进程响应慢问题定位记录
  • 原文地址:https://www.cnblogs.com/sheeva/p/6397024.html
Copyright © 2011-2022 走看看