我似乎遇到了一个问题,即Spark写入Elasticsearch非常慢,并且在进行初始连接时需要花费大量时间(大约15分钟),在此期间Spark和Elasticsearch都处于空闲状态。 在弹性社区中还有另一个thread突出显示相同的问题,但它已经关闭而没有任何解决方案。
这就是我从Spark写到ES的方式:
vgDF.write.format("org.elasticsearch.spark.sql").mode('append').option("es.resource", "demoindex/type1").option("es.nodes", "*ES IP*").save()
Spark规范
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分钟)。
答案 0 :(得分:1)
看起来ES连接正在超时。检查您提供的IP地址是否可以访问ES。如果您使用的是公共IP,请尝试将其更改为私有IP