• 111516

    文章

  • 803

    评论

  • 12

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

Spark Streaming调优 kafka

撸了今年阿里、腾讯和美团的面试,我有一个重要发现.......>>

当使用Spark Streaming的Direct方式接受Kafka数据时, 如果kafka中的数据过多, 会导致spark数据积压, 无法准时完成作业, 甚至OOM。

Spark的运行指标及调优的目标


共两个运行指标:调度延迟与执行延迟。
调优的目标是在SparkStreaming设定的批次时间间隔内, spark能够完整处理完一个批次, 而不会出现无法准时完成作业, 数据堆压等问题。

限制Kafka的最大流量


配置项spark.streaming.kafka.maxRatePerPartition, 设置了每秒钟从每个分区中所获得的数据的最大值, 每个批次处理的数据为 批次时间分区数N

背压机制(back pressure) 弹性地调整Kafka的流量


在上一节中的配置项难以调控, 具体的值不易设置, 可以使用back pressure机制来动态地调整从kafka获得的数据量。 back pressure机制会根据上一批次的运行情况来动态调整获取的数据量。
打开back pressure: 设置spark.streaming.backpressure.enabledtrue

二者结合来调控kafka的流量


在开启背压机制时, 程序运行的第一个批次没有其他批次的运行情况作为参考, 会获取相当多的数据, 可能会导致OOM, 因此需要设置kafka的最大流量。 在两者均开启的情况下, 背压机制划定了数据量的下限, 另一个划定了上限, 可以有效控制SparkStreaming所接受到的数据量。


695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

0条评论

Loading...


自定义皮肤 主体内容背景
打开支付宝扫码付款购买视频教程
遇到问题联系客服QQ:419400980
注册梁钟霖个人博客