美文网首页
说一下spark streaming如何处理反压

说一下spark streaming如何处理反压

作者: scott_alpha | 来源:发表于2019-10-19 16:56 被阅读0次

    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如何处理反压

          本文链接:https://www.haomeiwen.com/subject/bgtnmctx.html