spark streaming 监控方案

SparkStreaming监控从spark2.2.0版本开始支持,目前不支持2.1.0调研背景介绍业务反应sparkstreaming任务数据处理存在堆积情况,但是仍然会不断从kafka拉取数据,针对这种情况调研,给出解决的方案问题现象描述如果批处理时间始终大于批处理间隔或者队列等待延时持续增加,表明系统无法在批处理间隔内处理完毕消息,通过抽查sparkstreaming任务,发现部...
摘要由CSDN通过智能技术生成

SparkStreaming监控从spark2.2.0版本开始支持,目前不支持2.1.0

调研背景介绍

业务反应sparkstreaming任务数据处理存在堆积情况,但是仍然会不断从kafka拉取数据,针对这种情况调研,给出解决的方案

问题现象描述

如果批处理时间始终大于批处理间隔或者队列等待延时持续增加,表明系统无法在批处理间隔内处理完毕消息,通过抽查sparkstreaming任务,发现部分任务开启了背压参数,部分任务未开启。
开启的任务参数如下:

appId=application_1535616282827_0003
kafka连接方式为receiver方式
spark.streaming.backpressure.enabled=true
spark.streaming.backpressure.initialRate=5000
spark.streaming.kafka.maxRatePerPartition=2000

spark反压介绍

spark streaming任务在处理不断流入的数据是通过每间隔一段时间即(batch interval),将这段时间内流入的数据积累为一个batch,然后对这个batch的数据作为DAG的输入RDD提交新的job运行。
当一个batch处理所需的时间大于批周期(batch interval)时,意味着数据处理速度跟不上数据的接收速度,此时在数据接收端即Receiver(zk方式receiver运行在driver上,direct方式运行在executor)就会累积数据,因为数据时存储在spark中是由blockmanager管理的,存储方式采用MEMORY_ONLY模式就会导致OOM,采用MEMORY_AND_DISK多余的数据溢出到磁盘会增加数据读写时间,增加延迟。为了解决这一问题,spark在1.5版本后加入反压机制(back-pressure),根据前一批次数据的处理情况,动态、自动的调整后续数据的摄入量。

反压参数解释
spark.streaming.backpressure.enabled	true 是否开启反压。

spark.streaming.backpressure.initialRate 5000 反压机制时初始化的摄入量,该参数只对receiver模式起作用,并不适用于direct模式

spark.streaming.kafka.maxRatePerPartition 2000 每次作业中每个,Kafka分区最多读取的记录条数。可以防止第一个批次流量出现过载情况,也可以防止批次处理出现数据流量过载情况

建议所有streaming任务都开启反压机制

sparkstreaming任务监控

界面监控

在spark任务界面上提供了‘Streaming’选项卡,可以显示有关receiver和已完成的batch,队列延迟等情况。

主要指标:

1.Processing Time 处理每批数据的时间

2.Scheduling Delay 批次等待处理的延迟时间

ss.png

程序监控

如何通过编程的方式获取某一个任务的执行情况等,下面通过解释sparkstreaming wordcount的方式解释几个重要指标的采集。

wc程序代码:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值