在我们的项目中,我们使用apachespark来编写es。我们运行多个spark作业,这些作业并行地向es写入数据。我们处理的数据量太大,导致写入吞吐量高达~5k写入/秒。
我们希望限制es写入,以便将其降低到500到1000写入/秒的范围。我们遇到过这样的情况 es.batch.size.bytes
以及 es.batch.size.entries
但我们不确定这些配置如何与apachespark一起工作。
在我们的项目中,我们使用apachespark来编写es。我们运行多个spark作业,这些作业并行地向es写入数据。我们处理的数据量太大,导致写入吞吐量高达~5k写入/秒。
我们希望限制es写入,以便将其降低到500到1000写入/秒的范围。我们遇到过这样的情况 es.batch.size.bytes
以及 es.batch.size.entries
但我们不确定这些配置如何与apachespark一起工作。
1条答案
按热度按时间rjee0c151#
在spark中使用
repartition()
,或更优选coalesce()
如果您正在减少分区的数量,那么有一种简单的方法可以限制索引到分区的速率。如果要在pyspark中设置属性
注意:注意批量大小和条目是按任务示例分配的。总是乘以hadoop作业中的任务数,以获得运行时使用elasticsearch时的总批量大小/条目数。这就是为什么你得到5k写/秒