Ошибка подключения EsOutputFormat с использованием spark

#elasticsearch #apache-spark

#elasticsearch #apache-spark

Вопрос:

Я пытаюсь интегрировать spark и ES (1.2.1) с помощью elasticsearch-hadoop 2.0.0. Я буду использовать EsOutputFormat для записи в ES результатов, полученных из моих заданий spark. Я столкнулся со странной проблемой, когда в сообщении об ошибке говорится, что произошла ошибка подключения.

Я изложил здесь суть журналов.

Я немного смущен этим исключением, поскольку уверен, что могу подключиться к ES через порт по умолчанию:

 $ telnet localhost 9200
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
^C
Connection closed by foreign host.
  

Я использую Java версии 1.7.0_55 и scala 2.10.2. Есть идеи, чего мне не хватает?

Комментарии:

1. Что происходит при запуске curl -XGET ‘ localhost:9200 ‘ ? Как насчет curl -XGET ‘ 127.0.0.1:9200 ‘?

2. Он нормально подключается к elasticsearch с использованием localhost/ 127.0.0.1: $ curl -XGET ‘127.0.0.1:9200’ { «статус»: 200, «имя»: «Node01», «версия»: { «номер»: «1.2.1», «build_hash»: «6c95b759f9e7ef0f8e17f77d850da43ce8a4b364″, » build_timestamp» : «2014-06-03T15:02:52Z», «build_snapshot»: false, «lucene_version»: «4.8» }, «tagline»: «Вы знаете, для поиска» }

Ответ №1:

Вы используете spark в локальном режиме или в режиме кластера? если режим кластера, то исполнители worker в кластере не смогут получить доступ к localhost

попробуйте ввести сетевой IP, который доступен для всех узлов в вашем кластере

Ответ №2:

при определении вашего индекса в Elasticsearch вы изменили его размер? поскольку по умолчанию равно 1000, возможно, ваши данные больше размера индекса, поэтому они не могут загружать данные . Попробуйте изменить размер индекса, изменив настройки: «index.mapping.total_fields.limit»: 10000 (например)