如何排查Flink生成环境中的反压问题

声明:本系列博客为原创,最先发表在拉勾教育,其中一部分为免费阅读部分。被读者各种搬运至各大网站。所有其他的来源均为抄袭。

《2021年最新版大数据面试题全面开启更新》

 

    反压问题是流式计算系统中经常碰到的一个问题,如果你的任务出现反压节点,那么就意味着任务数据的消费速度小于数据的生成速度,需要对生成速度进行控制。通常情况下,反压经常出现在促销、热门活动等场景,他们有一个共同的特点:短时间内流量陡增造成数据的堆积或者消费速度变慢。

不同框架的反压对比

     目前主要的大数据实时处理系统都对反压问题进行了专门的处理,希望框架自身能检测到被阻塞的算子,然后降低数据生产者的发送速率。我们所熟悉的Storm、Spark Streaming、Flink的实现稍微有所不同。

Storm

     Storm从1.0版本以后引入了全新的反压机制,Storm会主动监控工作节点。当工作节点接受数据超过一定的水位值时,那么反压信息会被发送到Zookeeper上,然后Zookeeper通知所有的工作节点进入反压状态,最后数据的生成源头会降低数据的发送速度。

Spark Streaming

     Spark Streaming在原有的架构基础上专门设计了一个RateController组件,该组件利用经典的PID算法。向系统反馈当前系统处理数据的几个重要属性:消息数量、调度时间、处理时间等,然后根据这些参数计算出一个速率,该速率则是当前系统处理数据的最大能力,Spark Streaming会根据计算结果对生产者进行限速。

你可能感兴趣的:(大数据成神之路,Flink系统性学习专栏)