首页 文章

与外部动物园管理员的Solr Cloud

提问于
浏览
0

我正在学习本教程:https://gist.github.com/kalharbi/fd29661b9926eb087c45

配置2个节点的solr Cloud .

1.两台机器上的配置动物园管理员:192.168.1.56:2181(localadmin4),192.168.1.55:218(催眠动作8)当检查状态时,两者都正常:

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

开始的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:898301428484 . 这两个solr都工作正常 .

4.upload配置到zookeeper:localadmin4 @ localadmin4:/ opt / solr $ ./server/scripts/cloud-scripts/zkcli.sh -cmd upconfig -zkhost 192.168.1.56:2181 -confdir ./server/solr/configsets/data_driven_schema_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 回答

  • 1

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

    您可以tell Solr which IP to use by giving the embedded Jetty container the IP to use(或仅用于节点内通信,使用 SOLR_HOST 就足够了) .

    有人问我如何确保Solr完全暴露在服务器的内部IP地址上,所以我认为这些信息更有用 . 在Linux上,编辑solr.in.sh文件,找到名为SOLR_HOST的属性(默认情况下它已注释掉)并将其值设置为您希望Solr侦听请求的IP地址或主机名 . SOLR_HOST =“192.168.1.55”除了要编辑的文件是solr.in.cmd之外,该过程在Windows上类似 . 稍后向我指出,设置SOLR_HOST是不够的,因为该属性设置的主机/ IP仅由SolrCloud用于进行分片间请求 . 我们还需要在solr.in.sh或solr.in.cmd中设置Jetty使用的属性:SOLR_OPTS =“$ SOLR_OPTS -Djetty.host = 192.168.1.55”

  • -1

    您是否添加了这样的IP 127.0.1.1可能应该是 127.0.0.1 crosscheck .

    还要确保使用正确的服务器节点和服务器标识映射文件正确修改了zoo.cfg文件 .

    例如:

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

    我在External Zookeeper with Solr Cloud上的博客可能会对你有所帮助 .

相关问题