zoukankan      html  css  js  c++  java
  • 快速简单高效的搭建 SolrCloud 集群

    转https://segmentfault.com/a/1190000008634902

    集群配置

      集群中的每台机器都要按照以下说明进行配置启动

    首先到 solr 安装目录的 bin 下,编辑 solr.in.sh 文件
    搜索 SOLR_HOST, 取消注释, 设置成自己的 ip
    搜索 SOLR_TIMEZONE, 取消注释, 设置成 UTC+8

    #让solr关联zookeeper
    ZK_HOST="192.168.1.211:2181,192.168.1.211:2182,192.168.1.211:2183"
    #solr主机ip地址
    SOLR_HOST="192.168.1.211"
    #更改端口分别为8981
    SOLR_PORT=8981
    SOLR_TIMEZONE="UTC+8"
    

      


    注意:SOLR_HOST 如果不是生产环境不推荐设置成主机名,我复制虚拟机实验的时候由于主机名相同经历了一些很深的坑.

    集群启动

     //不配置ZK_HOST项的启动方式
     bin/solr start -cloud -z 192.168.10.131:2181,192.168.10.131:2182,192.168.10.131:2183 -p 8983 -force
     bin/solr start -cloud -z 192.168.10.131:2181,192.168.10.131:2182,192.168.10.131:2183 -p 8985 -force
     bin/solr start -cloud -z 192.168.10.131:2181,192.168.10.131:2182,192.168.10.131:2183 -p 8986 -force
    //若配置了ZK_HOST则以普通方式直接启动 bin/solr start -force

      

    -cloud 参数告诉 solr 集群方式启动,可简写为 -c
    -z 参数的值换成自己 zookeeper 的地址和端口 
    -p 指定 solr web 启动的端口(默认 8983)
    -force 上文已经解释过

    集群中每台机器都可以使用以上命令启动

    请在启动时确保zookeeper正常运行状态,否则报一下错误

     org.apache.solr.common.SolrException: Error processing the request. CoreContainer is either not initialized or shutting down.

    集群创建库

    在任一服务器中solrhome创建配置文件夹

    将/opt/solr-7.2.1/server/solr/configsets/_default/conf下的默认配置文件复制到自己创建的文件夹myconf下

    修改自己的配置文件后

    将自己的配置文件交给zookeeper管理,上传命令

    /opt/solr-7.2.1/server/scripts/cloud-scripts/zkcli.sh   -zkhost   192.168.10.131:2181,192.168.10.131:2182,192.168.10.131:2183   -cmd   upconfig  -confdir  /opt/solr-7.2.1/server/solr/configsets/myconf/conf  -confname   myconf
    • /opt/solr-7.2.1/server/scripts/cloud-scripts/zkcli.sh      #用于上传配置文件到zookeeper配置文件目录的批处理文件
    • -zkhost      #用于指定上传配置文件到那个zookeeper中
    • 192.168.10.131:2181,192.168.10.131:2182,192.168.10.131:2183        #zookeeper集群的ip地址和端口号
    • -cmd upconfig     #上传配置文件
    • -confdir     #配置文件目录    /opt/solr-7.2.1/server/solr/configsets/myconf/conf     
    • --confname      #给配置文件指定一个名字
    • 这样的话,在zookeeper集群中就有了一个叫 myconf 的配置了,

    在solrcloud管理界面创建collection

    ③步骤中选择你上传的配置文件myconf
    • name:collecton名称
    • numShards:分片数
    • replicationFactor:每个分片的复本数(请至少填写2个)
    • maxShardsPer:每个Solr服务器节点上最大分片数(Solr 4.2新增)





    也可以采用下面命令的方式创建collection

    ./solr create_collection -c test_collection -shards 2 -replicationFactor 3 -force

    -c   指定库(collection)名称
    -shards   指定分片数量,可简写为 -s ,索引数据会分布在这些分片上
    -replicationFactor   每个分片的副本数量
    -force   如果是用root用户操作则需加上该命令

    每个分片上的副本数据是一致的,leader挂掉后如果不加shards.tolerant=true会导致库的读写都不可用,待重新选举出 leader 后会恢复, 默认3分钟,可以配置.

    修改选举时间

    修改 solr 安装目录的 server/solr/solr.xml 文件
    <solrcloud> 节点内添加一下内容,单位是毫秒

    <str name="leaderVoteWait">${leaderVoteWait:10000}</str>
  • 相关阅读:
    sql FLOAT字段使用like查询
    关于sql--时间范围查询重叠
    关于java时间类型比较
    前端-搜索无结果时,怎么把“暂无数据“显示出来?
    v-for动态赋值给不同的下拉框input
    Java的优先队列PriorityQueue详解
    软件体系架构阅读笔记八
    字符数组和字符串之间的转换
    Java快速输入输出
    软件体系架构阅读笔记七
  • 原文地址:https://www.cnblogs.com/miye/p/9541260.html
Copyright © 2011-2022 走看看