2015-03-03 4 views
0

Я хотел бы использовать SolrCloud (Solr4.10.3) .. Я следую за этой вики (Пример B: https://wiki.apache.org/solr/SolrCloud#Example_B:_Simple_two_shard_cluster_with_shard_replicas)SolrCloud лидер избирательной

SolrCloud использует лидеров и надсмотрщик как деталь реализации. Это означает, что некоторые узлы/реплики будут играть особые роли. Вам не нужно беспокоиться, если экземпляр, который вы убиваете, является лидером или кластером overseer - если вам случится убить один из них, автоматический сбой через выберет новых лидеров или нового надзора прозрачно для пользователя , и они будут беспрепятственно захватывать их соответствующие рабочие места. Любой экземпляр Solr может быть переведен в одну из этих ролей.

Когда я останавливаю первый экземпляр, где я запускаю zookeeper, я не могу получить другого лидера.

я получаю эту информацию в том же узле (лог-файл Example2):

INFO - 2015-03-03 11:35:39.508; org.apache.solr.cloud.OverseerElectionContext; I am going to be the leader 192.168.1.38:7574_solr 
INFO - 2015-03-03 11:35:39.548; org.apache.solr.common.cloud.SolrZkClient; makePath: /overseer_elect/leader 
INFO - 2015-03-03 11:35:39.576; org.apache.solr.cloud.Overseer; Overseer (id=93413623381032961-192.168.1.38:7574_solr-n_0000000001) starting 
WARN - 2015-03-03 11:35:39.957; org.apache.zookeeper.ClientCnxn$SendThread;  
Session 0x14bdf320ecf0001 for server 0:0:0:0:0:0:0:1/0:0:0:0:0:0:0:1:9983,  
unexpected error, closing socket connection and attempting reconnect 
java.io.IOException: An existing connection was forcibly closed by the remote host 
at sun.nio.ch.SocketDispatcher.read0(Native Method) 
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 
at sun.nio.ch.IOUtil.read(IOUtil.java:192) 
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:379) 
at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:68) 
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:366) 
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081) 
INFO - 2015-03-03 11:35:40.064; org.apache.solr.common.cloud.ConnectionManager; Watcher [email protected] name:ZooKeeperConnection Watcher:localhost:9983 got event WatchedEvent state:Disconnected type:None path:null path:null type:None 
INFO - 2015-03-03 11:35:40.064; org.apache.solr.common.cloud.ConnectionManager; zkClient has disconnected 

В другом узле (Example2B) я получаю, что в файле журнала

INFO - 2015-03-03 11:35:39.507; org.apache.solr.cloud.ShardLeaderElectionContext; Running the leader process for shard shard1 
INFO - 2015-03-03 11:35:39.553; org.apache.solr.cloud.ShardLeaderElectionContext; Checking if I (core=collection1,coreNodeName=core_node3) should try and be the leader. 
INFO - 2015-03-03 11:35:39.574; org.apache.solr.cloud.ShardLeaderElectionContext; My last published State was Active, it's okay to be the leader. 
INFO - 2015-03-03 11:35:39.578; org.apache.solr.cloud.ShardLeaderElectionContext; I may be the new leader - try and sync 
WARN - 2015-03-03 11:35:39.956; org.apache.zookeeper.ClientCnxn$SendThread; Session 0x14bdf320ecf0002 for server 0:0:0:0:0:0:0:1/0:0:0:0:0:0:0:1:9983, unexpected error, closing socket connection and attempting reconnect 
java.io.IOException: An existing connection was forcibly closed by the remote host 
at sun.nio.ch.SocketDispatcher.read0(Native Method) 
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43) 
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 
at sun.nio.ch.IOUtil.read(IOUtil.java:192) 
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:379) 
at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:68) 
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:366) 
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081) 

Мы можем видеть в в одном и том же случае есть призыв к лидерскому процессу выборов, но это не удалось. Я не вижу проблемы.

Как получить автоматически другого лидера?

Есть ли специальная конфигурация моего сервера solr?

Как заставить выборы другого лидера?

Thx!

+0

Я получаю это Предупреждение 'Я буду лидером 192.168.1.38:7574_solr ..INFO -; org.apache.solr.common.cloud.SolrZkClient; makePath:/overseer_elect/leader ..WARN - неожиданная ошибка, закрытие соединения сокета и попытка повторного подключения ..java.io.IOException: существующее соединение было принудительно закрыто удаленным хостом –

+0

после нескольких поисков, я в точка для использования solr с внешним zookeeper .... 'Хотя Solr поставляется в комплекте с Apache ZooKeeper, вы должны подумать о том, что вам не рекомендуется использовать этот внутренний ZooKeeper в производстве, потому что закрытие избыточного экземпляра Solr также отключит его сервер ZooKeeper, который возможно, не будет настолько избыточным. Поскольку ансамбль ZooKeeper должен иметь кворум более половины своих серверов, работающих в любой момент времени, это может быть проблемой. « –

+0

моя цель - запустить solr с внешним zookeeper на 2 хоста. Я не могу завершить эту задачу .. Я использую эту ссылку: [SolrCloud HOWTO] (http://solr.pl/en/2013/03/11/solrcloud-howto-2/), [Configure-Solr-Cloud-with-External-Zookeeper] (Http: //mfg-hub.hubpages.com/hub/Configure-Solr-Cloud-with-External-Zookeeper, пошаговое руководство) –

ответ

0

конфигурации Zookeeper (хост: xxx.xxx.xxx.1):

tickTime=2000 
initLimit=10 
syncLimit=5 
clientPort=2181 
server.1=127.0.0.1:2888:3888 

Start Solr1 (хост: xxx.xxx.xxx.2)

java -Dbootstrap_confdir=./solr/collection1/conf 
       -Dcollection.configName=solr1 
       -Dsolr.allow.unsafe.resourceloading=true 
       -DzkHost=xxx.xxx.xxx.1:2181 
       -DnumShards=2 
       -jar start.jar 

Start Solr2 (хост: xxx.xxx.xxx.3)

java -Djetty.port=8900 -DzkHost=xxx.xxx.xxx.1:2181 -jar start.jar 

Закройте все брандмауэр!

Смежные вопросы