全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  应聘面试  >  大数据面试题

解决数据积压(重点)

发布时间:2022-09-02 15:31:48
发布人:wjy

起因sparkStream作为一个微流处理框架,每批次处理数据的时间应尽可能地接近批次间隔时间,才能保证流处理的高效和稳定。

批处理时间<<批间隔时间:流量太小,集群闲置,浪费资源,批处理时间>>批间隔时间:流量太大,集群繁忙,数据积压导致系统崩溃#####通过设置spark.streaming.kafka.maxRatePerPartition可以静态调整每次拉取的最大流量,但是需要重启集群。 

背压机制,不需要重启集群就能根据当前系统的处理速度智能地调节流量阈值的方案。

设置spark.streaming.backpressure.enabled为true开启反压机制后,sparkStreaming会根据上批次和本批次的处理速率,自动估算出下批次的流量阀值,我们可以通过改变几个增益比例来调控它的自动估算模型。

它的底层采用的是Guava的令牌桶算法实现的限流:程序到桶里取令牌,如果取到令牌就缓存数据,取不到就阻塞等待。通过改变放令牌的速度即可实现流量控制。

其它方案 1. 如果增加kafka的分区数,spark也会增加相应数目的消费者去拉取,可以提升拉取效率; 

2. 如果降低批次间隔时间,每次拉取的数据量会减少,可以提升处理数据的速度,差距的间隔时间可以通过窗口来弥补。

解决数据积压

相关文章

大数据kafka常见面试题——如何搭建kafka?

2023-08-07

大数据kafka常见面试题——kafka中如何避免重复消费

2023-08-04

大数据面试题之多种方法创建dataframe

2023-08-02

大数据Hadoop面试题——Hadoop干什么用的?

2023-08-01

大数据行业2年工作经验的面试题有哪些?

2023-07-28

大数据kafka面试题——kafka和flume的区别是什么?

2023-07-27
在线咨询 免费试学 教程领取