代码之家  ›  专栏  ›  技术社区  ›  Pramod Patil

带外部zookeeper的Solr云

  •  0
  • Pramod Patil  · 技术社区  · 7 年前

    我遵循本教程: https://gist.github.com/kalharbi/fd29661b9926eb087c45

    使用2个节点配置solr云。

    1、在两台机器上配置zookeeper:192.168.1.56:2181(localadmin4),192.168.1.55:2182(localadmin8) 当处于选中状态时,两者都在工作:

    localadmin8@localadmin8:/opt/solr$ ../zookeeper/bin/zkServer.sh status /data/zookeeper/z2/zoo.cfg ZooKeeper JMX enabled by default Using config: /data/zookeeper/z2/zoo.cfg Mode: leader

    localadmin4@localadmin4:/opt/solr$ ../zookeeper/bin/zkServer.sh status /data/zookeeper/z1/zoo.cfg 
    ZooKeeper JMX enabled by default
    Using config: /data/zookeeper/z1/zoo.cfg
    Mode: follower
    

    2.启动solr

    localadmin4@localadmin4:/opt/solr$ ./bin/solr start -c -p 8983 -z 192.168.1.56:2181,192.168.1.55:2182
    
    localadmin8@localadmin8:/opt/solr$ ./bin/solr start -c -p 8984 -z 192.168.1.56:2181,192.168.1.55:2182
    

    3.在浏览器中选中solr admin: http://192.168.1.56:8983 , http://192.168.1.55:8984 . 两个solr都工作正常。

    4.上传至zookeeper的配置: localadmin4@localadmin4:/opt/solr$/服务器/脚本/云脚本/zkcli。sh-cmd upconfig-zkhost 192.168.1.56:2181-confdir/server/solr/configsets/data\u driven\u schema\u configs/conf/-confname l-config

    5、创建集合时: http://192.168.1.56:8983/solr/admin/collections?action=CREATE&name=onix&numShards=2&replicationFactor=1&collection.configName=l-config

    它给了我以下回应:

    <response>
    <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">33011</int>
    </lst>
    <lst name="failure">
    <str name="127.0.1.1:8984_solr">org.apache.solr.client.solrj.SolrServerException:Server refused connection at: http://127.0.1.1:8984/solr</str>
    </lst>
    <lst name="success">
    <lst name="127.0.1.1:8983_solr">
    <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">1957</int>
    </lst>
    <str name="core">onix_shard2_replica1</str>
    </lst>
    </lst>
    </response>
    

    它没有点击192.168.1.55:8984_solr,而是点击127.0.1.1:8984_solr。

    如何解决这个问题?

    2 回复  |  直到 7 年前
        1
  •  1
  •   MatsLindh    7 年前

    这可能是由于Solr在启动时检测到自己的错误IP,因此在Solr集群中注册节点时使用了错误的IP。

    你可以 tell Solr which IP to use by giving the embedded Jetty container the IP to use SOLR_HOST 应该足够了)。

    有人问我如何确保Solr只在服务器内部IP地址上公开,所以我认为这一点信息在更普遍的情况下会有用。

    SOLR_HOST="192.168.1.55"

    该过程在Windows上类似,只是要编辑的文件是solr。在里面命令。

    后来有人向我指出,设置SOLR\u HOST是不够的,因为该属性设置的主机/IP仅由SolrCloud用于发出碎片间请求。我们还需要在solr中设置Jetty使用的属性。在里面sh或solr。在里面命令:

    SOLR_OPTS="$SOLR_OPTS -Djetty.host=192.168.1.55"

        2
  •  -2
  •   Vinod    7 年前

    你是这样添加IP的吗127.0.1.1应该是这样的 127.0.0.1 交叉检查。

    还要确保你修改了动物园。正确使用正确的服务器节点和服务器id映射文件创建cfg文件。

    前任:

     server.1=127.0.0.1:2222:2223
     server.2=127.0.0.1:3333:3334
    

    我的博客 External Zookeeper with Solr Cloud