【问题标题】:Solr 4 Host Port and Context information (ZooKeeper Base URL) settingsSolr 4 主机端口和上下文信息(ZooKeeper Base URL)设置
【发布时间】:2012-11-28 16:43:58
【问题描述】:

我正在尝试从 Solr 4-Beta 升级到 Solr 4。在使用 Solr 4-beta 时,我在 Solr.xml 文件中配置了主机和端口号,如下所示,一切正常。

<solr persistent="true">
  <cores host="xxx.xx.x.xxx" adminPath="/admin/cores" hostPort="8180" hostContext="solr4" sharedLib="lib">
  </cores>
</solr>

但是当我升级到 Solr 4.0 时,ZooKeeper 基本 URL 被设置为“http://Computer-name:8983/Solr”,这在联系其他节点时会引发以下异常。由于某种原因,ZooKeeper 初始化没有从 Solr.xml 中选择主机和端口信息,而是获取默认的 Solr 端口和上下文信息。有人可以帮忙纠正这个 ZooKeeper 的 base_url 吗?

SEVERE: Error while trying to recover. core=collection1:org.apache.solr.client.solrj.SolrServerException: IOException occured when talking to server at: http://ComputerName:8983/solr
    at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:413)
    at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:181)
    at org.apache.solr.cloud.RecoveryStrategy.sendPrepRecoveryCmd(RecoveryStrategy.java:199)
    at org.apache.solr.cloud.RecoveryStrategy.doRecovery(RecoveryStrategy.java:388)
    at org.apache.solr.cloud.RecoveryStrategy.run(RecoveryStrategy.java:220)
Caused by: java.net.UnknownHostException: COMPUTER-NAME
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
    at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:849)
    at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1202)
    at java.net.InetAddress.getAllByName0(InetAddress.java:1153)
    at java.net.InetAddress.getAllByName(InetAddress.java:1083)
    at java.net.InetAddress.getAllByName(InetAddress.java:1019)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:242)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:130)
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:150)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:575)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
    at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:352)
    ... 4 more 

【问题讨论】:

    标签: solr solrj apache-zookeeper solrcloud


    【解决方案1】:

    您的 solr.xml 配置看起来不错。除了sharedLib="lib",sharedLib 属性都属于标签&lt;solr persistent="true" sharedLib="lib"&gt;

    异常Caused by: java.net.UnknownHostException: COMPUTER-NAME

    请确保以下几点:

    1) zkHost 参数中提供的 ZooKeeper 主机名映射到 hosts 文件中

    -DzkHost=COMPUTER-NAME:2181,localhost:2182,localhost:2183
    

    主机文件定义

    127.0.0.1    localhost
    xxx.xxx.xxx.xxx     COMPUTER-NAME
    

    2) 更新了solr.xml 出现在SOLR_HOME 的正确路径中

    【讨论】:

    • 谢谢。第 2 点有所帮助。实际上这是一个愚蠢的错误,这花费了我们很多时间。新版jar中,SOLR_HOME设置不正确,无法正确获取主机名和端口名。
    猜你喜欢
    • 2018-10-25
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 2020-08-27
    • 2019-09-10
    相关资源
    最近更新 更多