#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 (например)