zoukankan      html  css  js  c++  java
  • solr安装-tomcat+solrCloud构建稳健solr集群(转载)

    solrCloud的搭建可以有两种方式:使用solr内嵌的jetty来搭建;使用外部web容器tomcat来搭建。对于使用jett来搭建参考solr官方的手册照着做肯定ok,下面我主要讲的是如何使用tomcat来搭建solrCloud。

     

    废话不多说,开始我们的工作!

    1.搭建tomcat单机版solr

    见我的上一篇博文solr安装-tomcat单机版

    2.安装配置zookeeper

    具体下载,安装,配置不详细说了,很简单。只列出我的关键配置项,如下:

    clientPort=4181

    server.2=hadoop.datanode5.com:2888:9888

    server.3=hadoop.datanode2.com:2888:9888
    server.1=hadoop.datanode3.com:2888:9888

    3. 配置solrCloud

    (1)先配置主服务器tomcat 10.2.50.46

    vim /usr/apache-tomcat-7.0.54/bin/catalina.sh   在图片所示位置加入以下代码

    JAVA_OPTS="$JAVA_OPTS -Dbootstrap_confdir=/usr/solr/collection1/conf -Dcollection.configName=myconf -DzkHost=hadoop.datanode2.com:4181,hadoop.datanode3.com:4181,hadoop.datanode5.com:4181"

    注:其中DzkHost是用来指定zookeeper服务器的ip和端口。 confdir目录指定所有的索引库都从collection1索引库中同步字段

    (2)配置从服务器tomcat 10.2.50.28 和10.2.50.52

    vim /home/tomcat/bin/catalina.sh 在和上图同样的位置加入

    JAVA_OPTS="-DzkHost=hadoop.datanode2.com:4181,hadoop.datanode3.com:4181,hadoop.datanode5.com:4181"

    (3)配置solr collection配置文件

    /usr/solr/solr.xml:配置hostport为tomcat的服务端口;配置zkHhost。

    <solr>
    
      <solrcloud>
        <str name="host">${host:}</str>
        <int name="hostPort">8080</int>
        <str name="hostContext">${hostContext:solr}</str>
        <int name="zkClientTimeout">${zkClientTimeout:15000}</int>
        <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
        <str name="zkHost">hadoop.datanode2.com:4181,hadoop.datanode3.com:4181,hadoop.datanode5.com:4181</str>
    </solrcloud>
    
      <shardHandlerFactory name="shardHandlerFactory"
        class="HttpShardHandlerFactory">
        <int name="socketTimeout">${socketTimeout:0}</int>
        <int name="connTimeout">${connTimeout:0}</int>
      </shardHandlerFactory>
    
    </solr>
    
    
    /usr/solr/collection1/core.properties:删除该文件(这样集群启动后就没有collection)

    /usr/solr/collection1/conf/solrconfig.xml:修改如下配置项:

    <dataDir>${solr.data.dir:/data_solr/example-collection}</dataDir>


    将所有的这些配置同步到各个节点上。

    (3) 保存后依次启动tomcat,输入http://10.2.50.46:8080,看到如下界面说明成功


    正常情况下,应该是没有collection和core的,我这里是自己创建了一个collection。

    (4)创建collection,shard,core

    有两种方式:一种是创建collection,自动分配shard和replica;另一种是创建collection,手动分配shard和replica。推荐后者,因为可控性强。

    方式一:

    curl 'http://localhost:7070/solr/admin/collections?action=CREATE&name=europe-collection&numShards=3&replicationFactor=3&maxShardsPerNode=3'

    这样会出来一个collection,它有3个shard,每个shard有1个数据节点,2个备份节点,即该collection共有9个core

    缺点:不灵活,不能选择适合的节点,不能选择数据存放路径,不能选择实例存放路径

    方式二:

    curl 'http://localhost:8080/solr/admin/cores?action=CREATE&name=cz_collection-shard1-replica1&instanceDir=/usr/solr/cz_collection-shard1-replica1&dataDir=/data_solr/cz_collection-shard1-replica1&collection=cz_collection&shard=shard1'

    curl 'http://localhost:8080/solr/admin/cores?action=CREATE&name=cz_collection-shard1-replica2&instanceDir=/usr/solr/cz_collection-shard1-replica2&dataDir=/data_solr/cz_collection-shard1-replica2&collection=cz_collection&shard=shard1'

    这样可以创建出一个collection,并自己指定该collection的shard和replica的所有配置项。还可以继续接着创建。

    以上两种方式的具体api调用,请参看solr官方文档。

    (5)集群运维

    a.集群会发生变化的就是collection的配置,因此当collection的配置文件发生变化后就应该使用命令更新zookeeper中配置文件信息,solr很好提供了运维工具:

    #collection配置
    #将配置文件上传到ZooKeeper中
    java -classpath .:/usr/solr/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost hadoop.datanode2.com:4181,hadoop.datanode3.com:4181,hadoop.datanode5.com:4181 -confdir /usr/solr/collection1/conf -confname myconf
    #将上传到ZooKeeper中配置文件与Collection相关联
    java -classpath .:/usr/solr/lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection cz_collection -confname myconf -zkhost hadoop.datanode2.com:4181,hadoop.datanode3.com:4181,hadoop.datanode5.com:4181

    b.对于collection,shard,core运维使用api接口即可,在此不说了。

    ok,大功告成!抽时间自己也写个类似solrCloud的东西玩玩!

    参考文章:

    http://myjeeva.com/solrcloud-cluster-single-collection-deployment.html#deploying-solrcloud

    http://wiki.apache.org/solr/SolrCloudTomcat

    http://wiki.apache.org/solr/SolrTomcat

    http://blog.csdn.net/woshiwanxin102213/article/details/18793271

    原文链接:https://blog.csdn.net/xyls12345/article/details/27504965

     
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    svn cleanup failed–previous operation has not finished 解决方法
    开源SNS社区系统推荐
    从网络获取图片本地保存
    MS SQL Server 数据库连接字符串
    KeepAlive
    Configure Git in debian
    sqlserver query time
    RPi Text to Speech (Speech Synthesis)
    SQL Joins with C# LINQ
    search or reseed identity columns in sqlserver 2008
  • 原文地址:https://www.cnblogs.com/name-lizonglin/p/13098440.html
Copyright © 2011-2022 走看看