Ravi
Ravi

Reputation: 873

Solr 4 Host Port and Context information (ZooKeeper Base URL) settings

I am trying to upgrade from Solr 4-Beta to Solr 4. While using Solr 4-beta, I configured the host and port number in Solr.xml file as below, and everything worked fine.

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

But when I upgraded to Solr 4.0, the ZooKeeper base URL is being set to "http://Computer-name:8983/Solr" which throws the below exception while contacting the other nodes. For some reason the ZooKeeper initialization is not picking the host and port information from the Solr.xml, but is getting the default Solr port and context information. Can someone please help on how to correct this ZooKeeper's 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 

Upvotes: 1

Views: 2989

Answers (1)

jeevatkm
jeevatkm

Reputation: 4781

Your solr.xml config looks okay. Except sharedLib="lib", sharedLib attribute belongs to tag <solr persistent="true" sharedLib="lib">.

Exception Caused by: java.net.UnknownHostException: COMPUTER-NAME

Please ensure following:

1) ZooKeeper hostname(s) provided in zkHost param are mapped in hosts file

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

Hosts file definition

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

2) Updated solr.xml present in correct path of SOLR_HOME

Upvotes: 3

Related Questions