Отсутствие данных в Elastisearch при записи данных с разъемом эластичного поиска-искры
Описание проблемы
У нас есть проблема с непротиворечивостью данных при хранении данных в Elasticsearch с использованием Spark и эластичного соединителя поиска искры. Задание успешно завершается, но когда мы сравниваем исходные данные (хранящиеся в S3) с данными, хранящимися в ES, некоторые документы отсутствуют в Elasticsearch.
Действия по воспроизведению
Эта проблема не всегда возникает, и, к сожалению, мы не можем воспроизвести ее по требованию. Единственный обнаруженный нами индикатор, который коррелирует с появлением этой ошибки, - это наличие сбойной стадии при сохранении данных в Elasticsearch. Задания, которые имеют этот этап сбоя, в конечном итоге успешно завершаются, но данные противоречивы.
Мы используем следующую конфигурацию:
- Elasticsearch:
- "es.write.operation": "index"
- "es.nodes.discovery": "false"
- "es.nodes.wan.only": "true"
- Spark:
- режим записи: "добавить"
Информация о версии
- ОС: Amazon Linux
- JVM: 1,8
- Hadoop / Spark: Hadoop 2.7.3 (Amazon), Spark 2.2.0
- ES-Hadoop: эластичный поиск-искра-20_2.11: 5.5.2
- ES: 5.3 (Amazon Elasticsearch Service).
Вопросы
Я ищу руководство для устранения этой проблемы.
- Я хочу понять, почему Elasticsearch не имеет всех данных, хотя Spark говорит, что он завершил работу и сохранил данные?
- Что мы можем сделать, чтобы обеспечить последовательную запись данных в ES?