我正在关注本教程:https://gist.github.com/kalharbi/fd29661b9926eb087c45
使用2个节点配置solr云。
1.在两台机器上配置动物园管理员:192.168.1.56:2181(localadmin4),192.168.1.55:21820(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.started 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 $ ./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-配置
它给了我以下回复:
<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。
如何解决此问题?
答案 0 :(得分: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 :(得分:-1)
您是否添加了这样的IP 127.0.1.1可能应该127.0.0.1
交叉检查。
还要确保使用正确的服务器节点和服务器ID映射文件正确修改了zoo.cfg文件。
例如:
server.1=127.0.0.1:2222:2223
server.2=127.0.0.1:3333:3334
External Zookeeper with Solr Cloud 上的我的博客可能对您有帮助。