ConnectionClosedException при использовании массового запроса Elasti c RestHighLevelClient - PullRequest
0 голосов
/ 13 января 2020

Я использую следующий код для RestHighLevelClient в Elasti c Поиск.

val credentialsProvider = new BasicCredentialsProvider
   credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(conf.value.getString("elkUserName"),conf.value.getString("elkPassword")))
   val builder = RestClient.builder(new HttpHost(conf.value.getString("elkIp"), Integer.valueOf(conf.value.getString("elkPort"))))
     .setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback() {
       //set timeout
       override def customizeRequestConfig(requestConfigBuilder: RequestConfig.Builder): RequestConfig.Builder = requestConfigBuilder.setConnectTimeout(Integer.valueOf(conf.value.getString("elkWriteTimeOut"))).setSocketTimeout(Integer.valueOf(conf.value.getString("elkWriteTimeOut")))
     }) .setHttpClientConfigCallback(new HttpClientConfigCallback() {
     override def customizeHttpClient( httpClientBuilder:HttpAsyncClientBuilder): HttpAsyncClientBuilder=   {
       httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider)
     }
   })
   client = new RestHighLevelClient(builder)
   val requestBuilder = RequestOptions.DEFAULT.toBuilder
   requestBuilder.setHttpAsyncResponseConsumerFactory(
     new HttpAsyncResponseConsumerFactory.HeapBufferedResponseConsumerFactory(1024 * 1024 * 1024))


   var request = new BulkRequest()
   request.setRefreshPolicy("wait_for")
   var sizeOfRequest = 1L
   newListOfMap.foreach { vals =>
     val newMap = vals.asJava
     request.add(new IndexRequest(indexName).source(newMap))

   }
     client.bulk(request, requestBuilder.build)

НО я получаю следующее исключение

java .lang.NoSuchMethodError : org. apache .http.ConnectionClosedException: метод () V не найден в org. apache .http.nio.protocol.HttpAsyncRequestExecutor.endOfInput (HttpAsyncRequestExecutor. java: 356) в орг. apache. .impl.nio.DefaultNHttpClientConnection.consumeInput (DefaultNHttpClientConnection. java: 261) в org. apache .http.impl.nio.client.InternalIODispatch.onInputReady (InternalIODispatch. * 101 * * 10 10) 81 .http.impl.nio.client.InternalIODispatch.onInputReady (InternalIODispatch. java: 39) в org. apache .http.impl.nio.reactor.AbstractIODispatch.inputReady (AbstractIODispatch. java: 114) или . apache .http.impl.nio.reactor.BaseIOReactor.readable (BaseIOReactor. java: 162) в орг. apache .http.impl.nio.reactor.AbstractIOReactor.processEvent (AbstractIOReactor. java: 337) в орг. apache .http.impl.nio.reactor.AbstractIOReactor .processEvents (AbstractIOReactor. java: 315) в орг. apache .http.impl.nio.reactor.AbstractIOReactor.execute (AbstractIOReactor. java: 276) в орг. apache .http.impl.nio .reactor.BaseIOReactor.execute (BaseIOReactor. java: 104) в орг. apache .http.impl.nio.reactor.AbstractMultiworkerIOReactor $ Worker.run (AbstractMultiworkerIOReactor. java: 591) в java. .Thread.run (Thread. java: 748) org. apache .http.ConnectionClosedException: соединение неожиданно закрывается в org.elasticsearch.client.RestClient.extractAndWrapCause (RestClient. java: 778) в org.elasticsearch. client.RestClient.performRequest (RestClient. java: 218) в org.elasticsearch.client.RestClient.performRequest (RestClient. java: 205) в org.elasticsearch.client.RestHighLevelClient.internalPerformReg. 1454) по адресу org.elasticsearch.client.RestHighLevelClient.performRequest (RestHighLevelClient. java: 1424) по адресу org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity (RestHighLevel: 10: 9: 10). 4) в org.elasticsearch.client.RestHighLevelClient.bulk (RestHighLevelClient. java: 492) в Utils.ELKUtil $ .postDataToELK (ELKUtil. scala: 59)

ПРИМЕЧАНИЕ. Выше код работает для меньшего размера запроса, но выдает ошибку выше при публикации большего размера запроса. Пожалуйста, предложите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...