spark一些

本文介绍了Spark Streaming中反压机制的重要性,用于控制批处理时间并提升集群资源利用率。讨论了如何启用反压,以及关键参数`spark.streaming.backpressure.enabled`和`spark.streaming.kafka.maxRatePerPartition`的设置。同时,提出了在处理Kafka数据时的速率预估和限流策略,以及在何种场景下需要启用反压。最后,建议通过优化代码和调整`batch Duration`来提高Spark Streaming的性能。
摘要由CSDN通过智能技术生成

解决方案:

  先创建sparkSession,然后再通过SparkSession去创建StreamingContext

 

SparkStreaming流控制

其中也提到了开启反压的缘由:一个批次的数据应该在一个批次内处理完,即batch process time应该接近于batch Duration,如果batch处理时间总是比batch间隔时间长,就会不断增加调度延迟时间而且数据也会在内存里堆积,进而增加系统不稳定性;另一方面,如果batch处理时间总是远远小于batch间隔时间,则集群资源利用率不高,也是一种资源浪费。

控制批处理时间的关键在batch接收的数据量和业务逻辑处理复杂度,往往前者起了决定性作用,反压机制就可以动态控制batch接收消息速率,来适配集群处理能力。

 

速率预估

启用反压也比较简单:sparkConf.set("spark.streaming.backpressure.enabled", "true")。spark会在作业执行结束后,调用RateController.onBatchCompleted更新batch的元数据信息:batch处理结束时间、batch处理时间、调度延迟时间、batch接收到的消息量等.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值