Apache spark Spark结构化流媒体资源争用/内存问题

Apache spark Spark结构化流媒体资源争用/内存问题,apache-spark,garbage-collection,spark-structured-streaming,Apache Spark,Garbage Collection,Spark Structured Streaming,我们有一个Spark结构化流媒体,它使用mapGroupWithState。在以稳定的方式处理一段时间后,突然每个小批量开始需要40秒。令人怀疑的是,每次看起来正好是40秒。在此之前,批量生产的时间不到一秒钟 查看特定任务的详细信息,大多数分区的处理速度非常快,但少数分区只需40秒: 由于数据处理速度很快,地面军事系统看起来还可以,但突然整个地面军事系统etc停止(与40秒问题同时出现): 发生此问题时,我已从其中一个执行器获取线程转储,但我看不到它们被阻止的任何资源: 我们是否遇到了G

我们有一个Spark结构化流媒体,它使用mapGroupWithState。在以稳定的方式处理一段时间后,突然每个小批量开始需要40秒。令人怀疑的是,每次看起来正好是40秒。在此之前,批量生产的时间不到一秒钟

查看特定任务的详细信息,大多数分区的处理速度非常快,但少数分区只需40秒:

由于数据处理速度很快,地面军事系统看起来还可以,但突然整个地面军事系统etc停止(与40秒问题同时出现):

发生此问题时,我已从其中一个执行器获取线程转储,但我看不到它们被阻止的任何资源:


我们是否遇到了GC问题,为什么它会以这种方式出现?是否还有另一个资源被阻塞?它是什么?

尝试提供更多的堆空间,看看GC是否仍然如此强大,如果是这样的话,您很可能存在内存泄漏问题


您使用的是什么spark版本?如果spark 2.3.1已知您正在从Kafka读取数据(这是非常常见的),要确定您的作业是否泄漏FD,请查看slave中容器进程中FD的使用情况,通常应该在100到200之间保持一致,只需升级到spark 2.3.2即可解决此问题,我很惊讶这个问题如此重要,但却从未获得足够的可视性

请抽一抽,看看你是否在使用SPARK-23682。如果你点击了相同的,Spark 2.4.0将解决这个问题。Hi@Jungtaek-你在邮件列表上给出了相同的答案。你是对的,在2.4中对我们来说似乎是固定的。我们想再测试一点,我也会回复邮件列表。啊,是的,我记不起邮件列表中我回复的所有内容。我希望您的问题能通过官方Spark 2.4解决。