Запись Spark в Elasticsearch с низкой производительностью
Кажется, я столкнулся с проблемой, из-за которой Spark пишет в Elasticsearch очень медленно, и на установление первоначального соединения уходит довольно много времени (около 15 минут), в течение которого Spark и Elasticsearch остаются бездействующими. Есть еще одна тема, освещающая ту же проблему в сообществе эластиков, но она была закрыта без какого-либо решения.
Вот как я пишу из Spark в ES:
vgDF.write.format("org.elasticsearch.spark.sql").mode('append').option("es.resource", "demoindex/type1").option("es.nodes", "*ES IP*").save()
Спецификации искры
Spark 2.1.0
3 cpu x 10 gb ram x 6 executors
running on 3 gce nodesSpark 2.1.0
Elasticsearch технические характеристики:
8 cpu * 30 gb RAM single node
Версии ES:
Elasticsearch: 6.2.2
ES-Hadoop: 6.2.2
Для вашей информации Spark считывает данные из Cassandra DB, обрабатывает результаты (но этот процесс довольно быстрый, занимает около 1–2 минут) и затем записывает в Elasticsearch.
Любая помощь будет принята с благодарностью
[РЕДАКТИРОВАТЬ]
Я также пытался варьировать размер данных от миллионов записей до 960 записей, но начальная задержка все та же (примерно 15 минут).
1 ответ
Похоже, ES соединение истекло. проверьте, доступен ли ES по предоставленному вами IP-адресу. если вы используете публичный IP, попробуйте изменить его на частный IP