spark streaming程序中当计算过程出现batch processing time > batch interval的情况时,意味着处理数据的速度小于接收数据的速度,如果这种情况持续过长的时间,会造成数据在内存中堆积,导致receiver所在executor内存溢出等问题(如果设置StorageLevel包含disk,则内存存放不下的数据会溢写到disk,加大延迟),可以通过设置参数spark.streaming.receiver.maxRate来限制receiver的数据接收速率,此举虽然可以通过限制接收速率,来适配当前的处理能力,防止内存溢出,但也会引入其他问题。比如:producer数据生产高于maxRate,当前集群处理能力也高于maxRate,这就会造成资源利用率下降等问题。为了更好的协调数据接收速率与资源处理能力,spark streaming从v1.5开始引入反压机制(back-pressure),通过动态控制数据接收速率来适配集群数据处理能力。
Spark Streaming Backpressure:根据jobScheduler反馈作业的执行信息来动态调整receiver数据接收率。通过属性“spark.streaming.backpressure.enabled”来控制是否启动backpressure机制,默认值false,即不启用。
[https://blog.csdn.net/su20145104009/article/details/82762719]
说一下spark streaming如何处理反压
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Spark Streaming 编程指南 概述 一个入门示例 基础概念 依赖 初始化 StreamingConte...
- 一、概述 Spark Streaming是基于Core Spark API的可扩展,高吞吐量,并具有容错能力的用于...
- 简单写一下自己读了Spark Streaming 2.1.0 Programming Guide之后的体验,也可以...
- 1、为什么引入Backpressure 默认情况下,Spark Streaming通过Receiver以生产者生产...