我正在尝试在三个独立的VM上设置连接到外部zookeeper集合的solr云。虚拟机在具有桥接网络的VirtualBox中运行Ubuntu 16.04。
为方便起见,我在每个VM的/ etc / hosts文件中分别为每个VM分配了名称 zoo1 , zoo2 和 zoo3 。
我通过存储库在每个VM上安装了zookeeper 3.4.8-1。
在每个VM上编辑'myid'和'zoo.conf'文件后,我就可以启动zookeeper集合了。使用zkServer.sh脚本询问状态我在zoo1和zoo2上得到了这个结果:
$ /usr/share/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /etc/zookeeper/conf/zoo.cfg
Mode: follower
除了Mode:'Mode:leader'
之外,zoo3的结果看起来一样我还可以将文件上传到zookeeper,一旦我将它们上传到一个zookeeper实例,我就可以从这三个VM上访问这些文件。
所以动物园管理员似乎运行良好,我想。
我在每个VM(zoo1,zoo2和zoo3)上安装了Solr,遵循以下方法: Taking Solr to Production (我遗漏了chroot部分)
使用
在每台计算机上启动solr作为服务$ sudo service solr start
或使用启动脚本
$ sudo /opt/solr/bin/solr start -c -z "zoo1:2181,zoo2:2181,zoo3:2181"
我可以访问每台机器上的管理面板,但我认为solr不能在云模式下运行,因为状态只给我一个活动节点:
$ bin/solr status
Found 1 Solr nodes:
Solr process 10642 running on port 8983
{
"solr_home":"/var/solr/data",
"version":"6.1.0 4726c5b2d2efa9ba160b608d46a977d0a6b83f94 - jpountz - 2016-06-13 09:46:58",
"startTime":"2016-07-14T12:44:45.509Z",
"uptime":"0 days, 0 hours, 23 minutes, 14 seconds",
"memory":"40.6 MB (%8.3) of 490.7 MB",
"cloud":{
"ZooKeeper":"zoo1:2181,zoo2:2181,zoo3:2181",
"liveNodes":"1",
"collections":"0"}}
我尝试将'SOLR_MODE = solrcloud'添加到我的solr.in.sh中,但它没有任何区别。
当我使用管理面板在一个VM上创建集合时,我可以在每个VM的管理面板中的“云”下看到该集合。但它没有分发给zoo1,zoo2和zoo3。相反,它仅在127.0.0.1上显示。
任何帮助将不胜感激!提前致谢。 格里特
答案 0 :(得分:0)
在发布我的问题后,我找到了它:
将 SOLR_HOST 变量分别设置为每个VM上的zoo1,zoo2和zoo3之后。我的 solr.in.sh 现在看起来像这样:
[...]
SOLR_MODE=solrcloud
ZK_HOST="zoo1,zoo2,zoo3"
# By default the start script uses "localhost"; override the hostname here
# for production SolrCloud environments to control the hostname exposed to cluster state
SOLR_HOST="zoo2"
[...]
for zoo2。
在SOLR_HOST被注释掉之前。