4

我在AWS EC2机器上设置SolrCloud时遇到问题。 该场景如下,AWS EC2机器上的Solrcloud配置

我有三台zookeeper和solr服务器。

每台服务器上都运行zookeeper。 当我用zookeeper主机信息启动Solr时,它启动并按预期工作。

问题是动物园管理员在生成群集信息时使用服务器的私有IP,因此我无法使用无法识别私有IP的Solrj查询它。 例如 server1。私人IP ip-a,b,c,d 公共IP:u,v,w,x 动物园管理员通过私有IP识别solr实例(很明显,这将不可见于外部EC2机器)

The cluster information looks something like this: 
live nodes:[10.165.15.104:8983_solr] collections:{vicon=DocCollection(vicon)={ 
    "shards":{"shard1":{ 
     "range":"80000000-7fffffff", 
     "state":"active", 
     "replicas":{"10.165.15.104:8983_solr_vicon":{ 
      "shard":"shard1", 
      "state":"down", 
      "core":"vicon", 
      "collection":"vicon", 
      "node_name":"10.165.15.104:8983_solr", 
      "base_url":"http://10.165.15.104:8983/solr", 
      "leader":"true"}}}}, 
    "router":"compositeId"}, collection1=DocCollection(collection1)={ 
    "shards":{"shard1":{ 
     "range":"80000000-7fffffff", 
     "state":"active", 
     "replicas":{"10.165.15.104:8983_solr_collection1":{ 
      "shard":"shard1", 
      "state":"down", 
      "core":"collection1", 
      "collection":"collection1", 
      "node_name":"10.165.15.104:8983_solr", 
      "base_url":"http://10.165.15.104:8983/solr", 
      "leader":"true"}}}}, 
    "router":"compositeId"}, collections=DocCollection(collections)={ 
    "shards":{"shard1":{ 
     "range":"80000000-7fffffff", 
     "state":"active", 
     "replicas":{ 
     "10.165.15.104:8983_solr_collections":{ 
      "shard":"shard1", 
      "state":"active", 
      "core":"collections", 
      "collection":"collections", 
      "node_name":"10.165.15.104:8983_solr", 
      "base_url":"http://10.165.15.104:8983/solr", 
      "leader":"true"}, 
     "10.147.129.56:8983_solr_collections":{ 
      "shard":"shard1", 
      "state":"down", 
      "core":"collections", 
      "collection":"collections", 
      "node_name":"10.147.129.56:8983_solr", 
      "base_url":"http://10.147.129.56:8983/solr"}}}}, 
    "router":"compositeId"}} 

活动节点的IP是私有IP,而不是公众一个

有没有什么办法,使我们可以ZooKeeper的存储集群的信息,主机名,而不是IP。如果无法完成,我如何在AWS EC2机器上运行solr Cloud?

回答

6

我想出了解决方案。我们可以先从主机名的Solr服务器,饲养员会用

只要给一个-Dhost = x.y.com启动时Solr的实例,它会正常工作

+1

谢谢!这一直困扰我很长一段时间:) –