Каков самый быстрый способ индексирования в ElasticSearch

мы работаем с ElasticSearch 2.x довольно долго. Все идеально соответствует нашим требованиям, за исключением одного слабого места: производительность записи/индексирования в кластер ElasticSearch не очень хороша.

в нашем случае у нас есть кластер ES 8 узлов, это индексы шириной 100~ полей, которые мы помещаем в ES. Коэффициент индексации составляет около 50 000 в минуту, что слишком медленно для нашего сценария. Мы пробовали все методы настройки, рекомендованные www.elastic.co - ... Самый быстрый способ мы обнаружили, что строим полезную нагрузку json в виде файлов, они сбрасывают их в ES с помощью bulk API. Но все же индексация идет слишком медленно.

Я видел некоторый разъем ES-Hadoop, также elasticsearch имеет поддержку spark, где вы можете использовать saveToES() сохраняет RDD в ES. Я подозреваю, что все они используют ES bulk API внизу. Кто-нибудь может поделиться опытом? Каков самый быстрый способ написания индексов в ElasticSearch?

1 ответов


независимо от того, какой сторонний инструмент вы используете вне ES, все должно использовать ES способы ввода данных. Либо Spark, Logstash, ваше собственное приложение должны использовать bulk или index api так или иначе. Здесь нет черной магии.