首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >火花流:处理时间>批处理时间时的问题

火花流:处理时间>批处理时间时的问题
EN

Stack Overflow用户
提问于 2016-12-16 12:12:20
回答 1查看 1.8K关注 0票数 6

我正在使用DirectAPI在纱线上运行火花流(1.6.1)来读取卡夫卡主题的事件,该主题有50个分区,并在HDFS上编写。我有60秒的间歇时间。我收到了大约500,000条信息,这些信息是在60 Sec下处理的。

火花突然开始接收到1500万到2000万条信息,用了5-6分钟的时间来处理,时间间隔为60秒。我已经配置了"spark.streaming.concurrentJobs=4"

因此,当批处理需要很长的时间处理火花,启动并发的4个活动任务来处理积压批时,由于批处理间隔对于这样的数据量太小,批处理积压仍会在一段时间内增加。

我对此几乎没有疑问。

  1. 当我开始接收1500万到2000万条消息时,处理这些消息的时间大约是5-6分钟,批处理间隔为60 Sec。当我检查我的HDFS目录时,我看到为每60 Sec创建的文件包含50个部分文件,在这里我一点也不困惑,我的批处理在5-6分钟内得到处理,然后它如何每1分钟在HDFS上写入文件&每批只调用一次'saveAsTextFile'操作。所有文件的记录总数为50份,约为330万份。
  2. 为了处理1500万到2000万条消息,我把我的批处理间隔设定为8-10分钟,现在spark开始消耗大约3,500万到4,000万来自Kafka的消息&同样,它的处理时间开始超过批处理间隔。

我已经配置了'spark.streaming.kafka.maxRatePerPartition=50' & 'spark.streaming.backpressure.enabled=true'

EN

回答 1

Stack Overflow用户

发布于 2021-07-22 14:02:54

我认为有一件事可能会让你感到困惑,那就是工作的长度和频率之间的关系。

从你所描述的情况来看,有了可用的资源,这份工作似乎最终需要5分钟才能完成。然而,您的批处理频率是1分钟。

因此,每1分钟你就会开始一批5分钟才能完成的任务。

因此,最终您将看到HDFS在最初的几分钟内什么也没有收到,然后继续每1分钟接收一些东西(但是从数据进入时起有5分钟的“延迟”)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41184154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档