После нескольких успешных обновлений solr выдает исключение SolrException: java.util.concurrent.TimeoutException: не удается подключиться к ZooKeeper - PullRequest
0 голосов
/ 20 сентября 2018

Я использую Solr версии 7.3.1 и использую его с 3 внешними узлами zookeeper.

Ниже приведена конфигурация моего zookeeper для одного из узлов, все имеют похожую конфигурацию:

tickTime=2000

initLimit=10
syncLimit=5
dataDir=/Users/<user>/zookeeper/zookdata/zk2/
clientPort=2182

server.1=localhost:2666:3666
server.2=localhost:2667:3667
server.3=localhost:2668:3668

Затем я использую эти 3 узла для запуска Solr.В моем приложении я использую localhost:2182,localhost:2183 для подключения к solr, используя приведенный ниже код.

List<String> zkHosts = Arrays.asList(solrZkHostPort.split(","));
    CloudSolrClient.Builder builder = new CloudSolrClient.Builder(zkHosts, Optional.empty());
    solrClient = builder.build();

Я использую несколько искровых исполнителей для обновления документа до solr.Это работает нормально для некоторых обновлений 1100-1300 записей после того, как это обновление завершается с ошибкой ниже:

Caused by: org.apache.solr.common.SolrException: java.util.concurrent.TimeoutException: Could not connect to ZooKeeper localhost:2182,localhost:2183 within 10000 ms
    at org.apache.solr.common.cloud.SolrZkClient.<init>(SolrZkClient.java:183)
    at org.apache.solr.common.cloud.SolrZkClient.<init>(SolrZkClient.java:120)
    at org.apache.solr.common.cloud.SolrZkClient.<init>(SolrZkClient.java:110)
    at org.apache.solr.common.cloud.ZkStateReader.<init>(ZkStateReader.java:285)
    at org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider.connect(ZkClientClusterStateProvider.java:155)
    at org.apache.solr.client.solrj.impl.CloudSolrClient.connect(CloudSolrClient.java:399)
    at org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:828)
    at org.apache.solr.client.solrj.impl.CloudSolrClient.request(CloudSolrClient.java:818)
    at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:194)
    at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:106)
    at com.package.SomeApplicationClass
    ... 16 more
Caused by: java.util.concurrent.TimeoutException: Could not connect to ZooKeeper localhost:2182,localhost:2183 within 10000 ms
    at org.apache.solr.common.cloud.ConnectionManager.waitForConnected(ConnectionManager.java:232)
    at org.apache.solr.common.cloud.SolrZkClient.<init>(SolrZkClient.java:175)
    ... 26 more

Я получаю ниже исключения тоже, хотя не уверен, если это имеет какое-либо значение:

18/09/20 12:45:40 WARN ClientCnxn: Session 0x0 for server localhost/127.0.0.1:2183, unexpected error, closing socket connection and attempting reconnect

    java.io.IOException: Connection reset by peer
        at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
        at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
        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:380)
        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)

Любая идея, в чем может быть проблема?Нужно ли менять конфигурацию zookeeper или нужно изменить способ, которым я создаю solr client?

1 Ответ

0 голосов
/ 20 сентября 2018

Ошибка Noob.

Моя работа по поиску создала более 1000 исполнителей искры, и для каждого исполнителя создавался клиент solr, а я не закрывал solrClient.закрытый клиент после завершения исполнителя.

...